Skip to main content

Module urn

Module urn 

Source
Expand description

URN (Uniform Resource Name) parsing and handling.

Subcog uses URNs to identify and filter memories. The scheme is:

subcog://{domain}/{namespace}/{memory_id}

Where:

  • domain: project, user, org, or _ (wildcard)
  • namespace: decisions, learnings, patterns, etc., or _ (wildcard)
  • memory_id: The specific memory ID (optional for filters)

§Examples

use subcog::models::Urn;

// Specific memory lookup
let urn = Urn::parse("subcog://project/patterns/abc123").unwrap();
assert_eq!(urn.memory_id(), Some("abc123"));

// Filter by namespace (any domain)
let urn = Urn::parse("subcog://_/learnings").unwrap();
assert!(urn.domain().is_wildcard());
assert_eq!(urn.namespace_str(), Some("learnings"));

// Filter by domain (any namespace)
let urn = Urn::parse("subcog://project/_").unwrap();
assert_eq!(urn.domain_str(), Some("project"));
assert!(urn.namespace().is_wildcard());

Structs§

Urn
A parsed Subcog URN.

Enums§

UrnComponent
A component of a URN that can be a specific value or a wildcard.