Skip to main content

uor_addr/gguf/
verbs.rs

1//! GGUF realization's ψ-chain content-address derivation verb. Identical
2//! at the term-arena level to [`crate::ring::verbs`] — the canonical
3//! k-invariants branch ψ_1 → ψ_7 → ψ_8 → ψ_9 — over `Input = GgufValue`.
4
5use crate::gguf::value::GgufCarrier;
6use crate::label::{
7    AddressLabelBlake3, AddressLabelKeccak256, AddressLabelSha256, AddressLabelSha3_256,
8    AddressLabelSha512,
9};
10
11addr_verbs! {
12    input: GgufCarrier<'_>,
13    { shape: AddressLabelSha256, verb: address_inference },
14    { shape: AddressLabelBlake3, verb: address_inference_blake3 },
15    { shape: AddressLabelSha3_256, verb: address_inference_sha3_256 },
16    { shape: AddressLabelKeccak256, verb: address_inference_keccak256 },
17    { shape: AddressLabelSha512, verb: address_inference_sha512 },
18}
19
20#[cfg(test)]
21mod tests {
22    use super::*;
23    use prism::operation::Term;
24
25    #[test]
26    fn verb_arena_is_canonical_k_invariants_branch() {
27        let arena = address_inference_term_arena::<{ crate::ADDR_INLINE_BYTES }>();
28        assert!(!arena.is_empty());
29        assert!(arena.iter().any(|t| matches!(t, Term::Nerve { .. })));
30        assert!(arena
31            .iter()
32            .any(|t| matches!(t, Term::PostnikovTower { .. })));
33        assert!(arena
34            .iter()
35            .any(|t| matches!(t, Term::HomotopyGroups { .. })));
36        assert!(arena.iter().any(|t| matches!(t, Term::KInvariants { .. })));
37    }
38
39    #[test]
40    fn verb_arena_contains_no_sigma_residuals() {
41        let arena = address_inference_term_arena::<{ crate::ADDR_INLINE_BYTES }>();
42        assert!(!arena.iter().any(|t| matches!(t, Term::FirstAdmit { .. })));
43        assert!(!arena
44            .iter()
45            .any(|t| matches!(t, Term::AxisInvocation { .. })));
46    }
47}