Skip to main content

parse_uri

Function parse_uri 

Source
pub fn parse_uri(uri: &str) -> Result<CmnUri>
Expand description

Parse a CMN URI into its components

Four forms:

  • cmn://domain → domain root
  • cmn://domain/hash → content-addressed spore
  • cmn://domain/mycelium/hash → content-addressed mycelium
  • cmn://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());