+4
upload/src/auth.rs
+4
upload/src/auth.rs
+2
upload/src/main.rs
+2
upload/src/main.rs
+44
upload/src/types.rs
+44
upload/src/types.rs
···
1
+
pub enum Did {
2
+
Web(String),
3
+
Plc(String),
4
+
}
5
+
6
+
enum DidError {
7
+
UnknownMethod,
8
+
MalformedDid,
9
+
}
10
+
11
+
impl Did {
12
+
fn from(did: String) -> Result<Did, DidError> {
13
+
if did.starts_with("did:plc:") {
14
+
return Ok(Did::Plc(String::from(did[8..])));
15
+
} else if did.starts_with("did:web:") {
16
+
return Ok(Did::Plc(String::from(did[8..])));
17
+
} else if did.starts_with("did:") {
18
+
return Err(DidError::UnknownMethod);
19
+
} else {
20
+
return Err(DidError::MalformedDid);
21
+
}
22
+
}
23
+
}
24
+
25
+
pub struct User {
26
+
handle: Option<String>,
27
+
did: Did,
28
+
pds: String,
29
+
}
30
+
31
+
enum UserFromErr {
32
+
InvalidHandle,
33
+
NoDidForHandle,
34
+
HandleNotBidirectional,
35
+
DidParseError(DidError),
36
+
DidNotBidirectional,
37
+
NoPds,
38
+
}
39
+
40
+
impl User {
41
+
fn fromHandle(handle: String) -> Result<User, UserFromErr> {}
42
+
43
+
fn fromDid(did: String) -> Result<User, UserFromErr> {}
44
+
}