uor_addr/gguf/
pipeline.rs1pub use crate::outcome::{AddressOutcome, AddressWitness, VerifyError};
16
17#[derive(Debug, Clone, Copy, PartialEq, Eq)]
19pub enum AddressFailure {
20 InvalidGguf,
25 PipelineFailure,
28}
29
30#[cfg(feature = "alloc")]
31use crate::gguf::model::{
32 AddressModel, AddressModelBlake3, AddressModelKeccak256, AddressModelSha3_256,
33 AddressModelSha512,
34};
35#[cfg(feature = "alloc")]
36use crate::gguf::value::{canonicalize, GgufCarrier};
37#[cfg(feature = "alloc")]
38use prism::pipeline::PrismModel;
39
40#[cfg(feature = "alloc")]
49pub fn address(input_bytes: &[u8]) -> Result<AddressOutcome<71>, AddressFailure> {
50 let skeleton = canonicalize(input_bytes).map_err(|_| AddressFailure::InvalidGguf)?;
51 let grounded = AddressModel::forward(GgufCarrier::new(&skeleton))
52 .map_err(|_| AddressFailure::PipelineFailure)?;
53 AddressOutcome::<71>::from_grounded(&grounded).map_err(|_| AddressFailure::PipelineFailure)
54}
55
56#[cfg(feature = "alloc")]
63pub fn address_blake3(input_bytes: &[u8]) -> Result<AddressOutcome<71>, AddressFailure> {
64 let skeleton = canonicalize(input_bytes).map_err(|_| AddressFailure::InvalidGguf)?;
65 let grounded = AddressModelBlake3::forward(GgufCarrier::new(&skeleton))
66 .map_err(|_| AddressFailure::PipelineFailure)?;
67 AddressOutcome::<71>::from_grounded(&grounded).map_err(|_| AddressFailure::PipelineFailure)
68}
69
70#[cfg(feature = "alloc")]
77pub fn address_sha3_256(input_bytes: &[u8]) -> Result<AddressOutcome<73>, AddressFailure> {
78 let skeleton = canonicalize(input_bytes).map_err(|_| AddressFailure::InvalidGguf)?;
79 let grounded = AddressModelSha3_256::forward(GgufCarrier::new(&skeleton))
80 .map_err(|_| AddressFailure::PipelineFailure)?;
81 AddressOutcome::<73>::from_grounded(&grounded).map_err(|_| AddressFailure::PipelineFailure)
82}
83
84#[cfg(feature = "alloc")]
91pub fn address_keccak256(input_bytes: &[u8]) -> Result<AddressOutcome<74>, AddressFailure> {
92 let skeleton = canonicalize(input_bytes).map_err(|_| AddressFailure::InvalidGguf)?;
93 let grounded = AddressModelKeccak256::forward(GgufCarrier::new(&skeleton))
94 .map_err(|_| AddressFailure::PipelineFailure)?;
95 AddressOutcome::<74>::from_grounded(&grounded).map_err(|_| AddressFailure::PipelineFailure)
96}
97
98#[cfg(feature = "alloc")]
106pub fn address_sha512(input_bytes: &[u8]) -> Result<AddressOutcome<135, 64>, AddressFailure> {
107 let skeleton = canonicalize(input_bytes).map_err(|_| AddressFailure::InvalidGguf)?;
108 let grounded = AddressModelSha512::forward(GgufCarrier::new(&skeleton))
109 .map_err(|_| AddressFailure::PipelineFailure)?;
110 AddressOutcome::<135, 64>::from_grounded(&grounded).map_err(|_| AddressFailure::PipelineFailure)
111}