frame-core 0.3.0

Component model, lifecycle, process isolation — hosts components as supervised BEAM process trees
Documentation
//! Stable component identity acceptance.

use frame_core::component::ComponentId;

#[test]
fn identity_is_stable_across_version_and_bytecode_and_parses_only_fixed_hex()
-> Result<(), Box<dyn std::error::Error>> {
    let identity = ComponentId::derive("canonical.publisher", "contacts");
    let display = identity.to_string();
    assert_eq!(display.len(), 64);
    assert_eq!(display.parse::<ComponentId>()?, identity);
    assert!("00".parse::<ComponentId>().is_err());
    assert!(
        format!("{}z", &display[..63])
            .parse::<ComponentId>()
            .is_err()
    );
    assert_eq!(
        ComponentId::derive("canonical.publisher", "contacts"),
        identity,
        "version and bytecode are not identity inputs"
    );
    Ok(())
}