canic_core/api/fixture_content/mod.rs
1//! Module: api::fixture_content
2//!
3//! Responsibility: expose canonical fixture content and chunk validation.
4//! Does not own: Store admission, source selection or application data validation.
5//! Boundary: publication owners additionally enforce their complete wire envelope.
6
7use crate::dto::fixture_provisioning::{FixtureDescriptor, FixtureStoreError};
8
9/// Canonical opaque content validation shared by publishers and installed consumers.
10pub struct FixtureContentApi;
11
12impl FixtureContentApi {
13 /// Hash the bounded descriptor independently of its release and installation.
14 pub fn content_id(descriptor: &FixtureDescriptor) -> Result<[u8; 32], FixtureStoreError> {
15 crate::ops::fixture_content::content_id(descriptor)
16 }
17
18 /// Verify exact length, position and digest before application delivery.
19 pub fn verify_chunk(
20 descriptor: &FixtureDescriptor,
21 index: u32,
22 bytes: &[u8],
23 ) -> Result<(), FixtureStoreError> {
24 crate::ops::fixture_content::verify_chunk(descriptor, index, bytes)
25 }
26}