Skip to main content

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}