wip
1use alloc::{string::String, vec::Vec};
2use serde::{Deserialize, Serialize};
3
4#[allow(clippy::large_enum_variant)]
5#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
6pub enum Request {
7 Exit,
8 GetDidKey {
9 index: u32,
10 display: bool,
11 },
12 SignPlcOperation {
13 key_index: u32,
14 previous: Option<PlcOperation>,
15 operation: PlcOperation,
16 },
17}
18
19#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
20#[serde(rename_all = "camelCase")]
21pub struct PlcOperation {
22 pub r#type: String,
23 pub rotation_keys: Vec<String>,
24 pub verification_methods: VerificationMethods,
25 pub also_known_as: Vec<String>,
26 pub services: Services,
27 pub prev: Option<String>,
28}
29
30#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
31#[serde(rename_all = "camelCase")]
32pub struct VerificationMethods {
33 pub atproto: String,
34}
35
36#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
37pub struct Services {
38 pub atproto_pds: Service,
39}
40
41#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
42#[serde(rename_all = "camelCase")]
43pub struct Service {
44 pub r#type: String,
45 pub endpoint: String,
46}
47
48#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
49pub enum Response {
50 DidKey(Vec<u8>),
51 Signature(Vec<u8>),
52 Error(String),
53}