[WIP] A (somewhat barebones) atproto app for creating custom sites without hosting!
at 2910f4ffa161c7cd34c74d07aaa05239bbbda8cf 44 lines 848 B view raw
1pub enum Did { 2 Web(String), 3 Plc(String), 4} 5 6enum DidError { 7 UnknownMethod, 8 MalformedDid, 9} 10 11impl 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 25pub struct User { 26 handle: Option<String>, 27 did: Did, 28 pds: String, 29} 30 31enum UserFromErr { 32 InvalidHandle, 33 NoDidForHandle, 34 HandleNotBidirectional, 35 DidParseError(DidError), 36 DidNotBidirectional, 37 NoPds, 38} 39 40impl User { 41 fn fromHandle(handle: String) -> Result<User, UserFromErr> {} 42 43 fn fromDid(did: String) -> Result<User, UserFromErr> {} 44}