89 lines
2 KiB
Rust
89 lines
2 KiB
Rust
use serde::{Deserialize, Serialize};
|
|
|
|
pub enum CheckStatus {}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
#[serde(rename_all = "camelCase")]
|
|
pub struct CheckStatusParams {
|
|
pub local_checks_only: bool,
|
|
}
|
|
|
|
impl lsp::request::Request for CheckStatus {
|
|
type Params = CheckStatusParams;
|
|
type Result = SignInStatus;
|
|
const METHOD: &'static str = "checkStatus";
|
|
}
|
|
|
|
pub enum SignInInitiate {}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct SignInInitiateParams {}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
#[serde(tag = "status")]
|
|
pub enum SignInInitiateResult {
|
|
AlreadySignedIn { user: String },
|
|
PromptUserDeviceFlow(PromptUserDeviceFlow),
|
|
}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
#[serde(rename_all = "camelCase")]
|
|
pub struct PromptUserDeviceFlow {
|
|
pub user_code: String,
|
|
pub verification_uri: String,
|
|
}
|
|
|
|
impl lsp::request::Request for SignInInitiate {
|
|
type Params = SignInInitiateParams;
|
|
type Result = SignInInitiateResult;
|
|
const METHOD: &'static str = "signInInitiate";
|
|
}
|
|
|
|
pub enum SignInConfirm {}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
#[serde(rename_all = "camelCase")]
|
|
pub struct SignInConfirmParams {
|
|
pub user_code: String,
|
|
}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
#[serde(tag = "status")]
|
|
pub enum SignInStatus {
|
|
#[serde(rename = "OK")]
|
|
Ok {
|
|
user: String,
|
|
},
|
|
MaybeOk {
|
|
user: String,
|
|
},
|
|
AlreadySignedIn {
|
|
user: String,
|
|
},
|
|
NotAuthorized {
|
|
user: String,
|
|
},
|
|
NotSignedIn,
|
|
}
|
|
|
|
impl lsp::request::Request for SignInConfirm {
|
|
type Params = SignInConfirmParams;
|
|
type Result = SignInStatus;
|
|
const METHOD: &'static str = "signInConfirm";
|
|
}
|
|
|
|
pub enum SignOut {}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
#[serde(rename_all = "camelCase")]
|
|
pub struct SignOutParams {}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
#[serde(rename_all = "camelCase")]
|
|
pub struct SignOutResult {}
|
|
|
|
impl lsp::request::Request for SignOut {
|
|
type Params = SignOutParams;
|
|
type Result = SignOutResult;
|
|
const METHOD: &'static str = "signOut";
|
|
}
|