pub fn parse_uri(uri: &str) -> Result<CmnUri>Expand description
Parse a CMN URI into its components
Four forms:
cmn://domain→ domain rootcmn://domain/hash→ content-addressed sporecmn://domain/mycelium/hash→ content-addressed myceliumcmn://domain/taste/hash→ content-addressed taste report
§Examples
use substrate::uri::parse_uri;
let spore = parse_uri("cmn://example.com/b3.3yMR7vZQ9hL").unwrap();
assert_eq!(spore.domain, "example.com");
assert_eq!(spore.hash, Some("b3.3yMR7vZQ9hL".to_string()));
assert!(spore.is_spore());
let domain = parse_uri("cmn://example.com").unwrap();
assert_eq!(domain.domain, "example.com");
assert_eq!(domain.hash, None);
assert!(domain.is_domain());
let mycelium = parse_uri("cmn://example.com/mycelium/b3.7tRk").unwrap();
assert_eq!(mycelium.domain, "example.com");
assert_eq!(mycelium.hash, Some("b3.7tRk".to_string()));
assert!(mycelium.is_mycelium());
let taste = parse_uri("cmn://alice.dev/taste/b3.7tRkW2x").unwrap();
assert_eq!(taste.domain, "alice.dev");
assert_eq!(taste.hash, Some("b3.7tRkW2x".to_string()));
assert!(taste.is_taste());