request.rs

 1use serde::{Deserialize, Serialize};
 2
 3pub enum CheckStatus {}
 4
 5#[derive(Debug, Serialize, Deserialize)]
 6#[serde(rename_all = "camelCase")]
 7pub struct CheckStatusParams {
 8    pub local_checks_only: bool,
 9}
10
11impl lsp::request::Request for CheckStatus {
12    type Params = CheckStatusParams;
13    type Result = SignInStatus;
14    const METHOD: &'static str = "checkStatus";
15}
16
17pub enum SignInInitiate {}
18
19#[derive(Debug, Serialize, Deserialize)]
20pub struct SignInInitiateParams {}
21
22#[derive(Debug, Serialize, Deserialize)]
23#[serde(tag = "status")]
24pub enum SignInInitiateResult {
25    AlreadySignedIn { user: String },
26    PromptUserDeviceFlow(PromptUserDeviceFlow),
27}
28
29#[derive(Debug, Serialize, Deserialize)]
30#[serde(rename_all = "camelCase")]
31pub struct PromptUserDeviceFlow {
32    pub user_code: String,
33    pub verification_uri: String,
34}
35
36impl lsp::request::Request for SignInInitiate {
37    type Params = SignInInitiateParams;
38    type Result = SignInInitiateResult;
39    const METHOD: &'static str = "signInInitiate";
40}
41
42pub enum SignInConfirm {}
43
44#[derive(Debug, Serialize, Deserialize)]
45#[serde(rename_all = "camelCase")]
46pub struct SignInConfirmParams {
47    pub user_code: String,
48}
49
50#[derive(Debug, Serialize, Deserialize)]
51#[serde(tag = "status")]
52pub enum SignInStatus {
53    #[serde(rename = "OK")]
54    Ok {
55        user: String,
56    },
57    MaybeOk {
58        user: String,
59    },
60    AlreadySignedIn {
61        user: String,
62    },
63    NotAuthorized {
64        user: String,
65    },
66    NotSignedIn,
67}
68
69impl lsp::request::Request for SignInConfirm {
70    type Params = SignInConfirmParams;
71    type Result = SignInStatus;
72    const METHOD: &'static str = "signInConfirm";
73}
74
75pub enum SignOut {}
76
77#[derive(Debug, Serialize, Deserialize)]
78#[serde(rename_all = "camelCase")]
79pub struct SignOutParams {}
80
81#[derive(Debug, Serialize, Deserialize)]
82#[serde(rename_all = "camelCase")]
83pub struct SignOutResult {}
84
85impl lsp::request::Request for SignOut {
86    type Params = SignOutParams;
87    type Result = SignOutResult;
88    const METHOD: &'static str = "signOut";
89}