uor_addr/composition/e8/
pipeline.rs1#![cfg(feature = "alloc")]
4
5use crate::composition::canonicalize::{canonicalize_e8, check_axis, decode_operand};
6use crate::composition::e8::model::{
7 CompositionModelE8Blake3, CompositionModelE8Keccak256, CompositionModelE8Sha256,
8 CompositionModelE8Sha3_256, CompositionModelE8Sha512,
9};
10use crate::composition::e8::value::E8Carrier;
11use crate::composition::CompositionFailure;
12use crate::label::KappaLabel;
13use crate::outcome::AddressOutcome;
14use prism::pipeline::PrismModel;
15
16pub fn compose_e8_embedding(
26 operand: &KappaLabel<71>,
27) -> Result<AddressOutcome<71>, CompositionFailure> {
28 let (axis, _) = decode_operand(operand)?;
29 check_axis(axis, "sha256")?;
30 let canon = canonicalize_e8(operand);
31 let grounded = CompositionModelE8Sha256::forward(E8Carrier::new(&canon))
32 .map_err(|_| CompositionFailure::PipelineFailure)?;
33 AddressOutcome::<71>::from_grounded(&grounded).map_err(|_| CompositionFailure::PipelineFailure)
34}
35pub fn compose_e8_embedding_blake3(
45 operand: &KappaLabel<71>,
46) -> Result<AddressOutcome<71>, CompositionFailure> {
47 let (axis, _) = decode_operand(operand)?;
48 check_axis(axis, "blake3")?;
49 let canon = canonicalize_e8(operand);
50 let grounded = CompositionModelE8Blake3::forward(E8Carrier::new(&canon))
51 .map_err(|_| CompositionFailure::PipelineFailure)?;
52 AddressOutcome::<71>::from_grounded(&grounded).map_err(|_| CompositionFailure::PipelineFailure)
53}
54pub fn compose_e8_embedding_sha3_256(
64 operand: &KappaLabel<73>,
65) -> Result<AddressOutcome<73>, CompositionFailure> {
66 let (axis, _) = decode_operand(operand)?;
67 check_axis(axis, "sha3-256")?;
68 let canon = canonicalize_e8(operand);
69 let grounded = CompositionModelE8Sha3_256::forward(E8Carrier::new(&canon))
70 .map_err(|_| CompositionFailure::PipelineFailure)?;
71 AddressOutcome::<73>::from_grounded(&grounded).map_err(|_| CompositionFailure::PipelineFailure)
72}
73pub fn compose_e8_embedding_keccak256(
83 operand: &KappaLabel<74>,
84) -> Result<AddressOutcome<74>, CompositionFailure> {
85 let (axis, _) = decode_operand(operand)?;
86 check_axis(axis, "keccak256")?;
87 let canon = canonicalize_e8(operand);
88 let grounded = CompositionModelE8Keccak256::forward(E8Carrier::new(&canon))
89 .map_err(|_| CompositionFailure::PipelineFailure)?;
90 AddressOutcome::<74>::from_grounded(&grounded).map_err(|_| CompositionFailure::PipelineFailure)
91}
92pub fn compose_e8_embedding_sha512(
102 operand: &KappaLabel<135>,
103) -> Result<AddressOutcome<135, 64>, CompositionFailure> {
104 let (axis, _) = decode_operand(operand)?;
105 check_axis(axis, "sha512")?;
106 let canon = canonicalize_e8(operand);
107 let grounded = CompositionModelE8Sha512::forward(E8Carrier::new(&canon))
108 .map_err(|_| CompositionFailure::PipelineFailure)?;
109 AddressOutcome::<135, 64>::from_grounded(&grounded)
110 .map_err(|_| CompositionFailure::PipelineFailure)
111}