pub struct ContentRef {
pub kind: ContentRefKind,
pub content_id: ContentId,
pub size_bytes: u64,
pub storage_checksum: StorageChecksum,
pub whole_file_sha256: Option<String>,
}Expand description
Pointer to one immutable content object.
content_id is identity — which object — and the checksums are
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.
storage_checksum: StorageChecksumMandatory checksum over the complete object, used to verify the stored bytes against this reference without downloading them.
whole_file_sha256: Option<String>SHA-256 over the complete payload, lowercase hex, when a trusted party computed it.
Present means the LoonFS write path hashed the whole stream itself, or a provider validated a signed whole-object SHA-256 on the write. There are no client-claimed digests: absent means nobody trustworthy hashed these bytes, never “the client did not tell us”.
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 whole-file SHA-256 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 reference from a digest folded over the payload as it was written, for a write that never held the whole payload at once.
Taking the digest itself rather than a checksum value is what keeps
the provenance rule structural: the only way to reach this
constructor is to have hashed the bytes here, on the LoonFS write
path, which is exactly what whole_file_sha256 claims.
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