pub struct ContentRef {
pub kind: ContentRefKind,
pub content_id: ContentId,
pub size_bytes: u64,
pub checksum: Checksum,
}Expand description
Pointer to one immutable content object.
content_id is identity — which object — and the checksum is
evidence about its bytes. Separating the two is what lets the final
object key exist before the first byte is read.
A ContentRef is safe to publish only after the referenced bytes are
durable in the namespace’s content store.
Fields§
§kind: ContentRefKindContent strategy used by the referenced object.
content_id: ContentIdImmutable identity of the referenced object.
size_bytes: u64Complete byte length of the referenced content.
checksum: ChecksumMandatory checksum over the complete object.
Implementations§
Source§impl ContentRef
impl ContentRef
Sourcepub fn blob_v1(content_id: ContentId, bytes: &[u8]) -> Self
pub fn blob_v1(content_id: ContentId, bytes: &[u8]) -> Self
Builds a reference to a freshly minted content object holding these bytes.
Every caller of this constructor moves the bytes through the LoonFS write path, so the checksum is trusted by construction.
Sourcepub fn blob_v1_streamed(
content_id: ContentId,
size_bytes: u64,
digest: Sha256,
) -> Self
pub fn blob_v1_streamed( content_id: ContentId, size_bytes: u64, digest: Sha256, ) -> Self
Builds a content reference from a SHA-256 computed while streaming the payload.
Accepting the digest object, rather than an arbitrary checksum string, ensures that the checksum came from the LoonFS write path.
Sourcepub fn matches_evidence(&self, evidence: ContentEvidence<'_>) -> bool
pub fn matches_evidence(&self, evidence: ContentEvidence<'_>) -> bool
Whether evidence proves that a payload has the same bytes as this
reference.
Reference evidence returns false when the size or checksum algorithm
differs. A checksum that was never computed is not evidence of a match.
Sourcepub fn validate(&self) -> Result<(), ContentRefValidationError>
pub fn validate(&self) -> Result<(), ContentRefValidationError>
Reports whether the reference is well formed enough to publish.
This is a shape check on the reference itself; proving that the object exists and matches is the storage layer’s job.
Trait Implementations§
Source§impl Clone for ContentRef
impl Clone for ContentRef
Source§fn clone(&self) -> ContentRef
fn clone(&self) -> ContentRef
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more