pub enum ObjectType {
Blob,
Tree,
State,
Action,
Redaction,
StateVisibility,
StateAttachment,
}Variants§
Blob
Tree
State
Action
Redaction
A RedactionsBlob sidecar — the rmp-encoded record(s) declaring
that a specific blob has been redacted (and possibly purged) by
an authorized operator. Keyed on the wire by ObjectId::Hash of
the redacted blob, since Repository’s sidecar store is
indexed that way.
StateVisibility
A StateVisibilityBlob sidecar — the rmp-encoded record(s)
declaring a non-public audience tier for a specific state. Keyed
on the wire by ObjectId::StateId of the state, since the
per-state sidecar store is indexed that way. Like Redaction, it
is a sidecar record that lives outside the content-addressed pack
and ships via the per-object transfer path, not the pack.
StateAttachment
Implementations§
Source§impl ObjectType
impl ObjectType
pub fn wire_name(self) -> &'static str
pub fn from_wire(value: &str) -> Result<Self>
Sourcepub fn packable(self) -> bool
pub fn packable(self) -> bool
Whether this object type can ride the content-addressed native pack in
general (the historical, direction-agnostic predicate). Sidecar records
(Redaction, StateVisibility) live outside .heddle/objects/ and can
never be packed; everything else can.
Prefer ObjectType::packable_for_push /
ObjectType::packable_for_pull at transfer sites: packability is
direction-dependent for StateAttachment (see those methods). This
method retains the pull/general semantics so pack construction,
have-set, and local-copy planners are unchanged.
Sourcepub fn packable_for_push(self) -> bool
pub fn packable_for_push(self) -> bool
Whether this object type may ride the client→server push pack.
StateAttachment is deliberately excluded on push even though it is a
content-addressed object: a deployed server rejects any pack-carried
attachment as a forgery-prevention measure (weft#549). Pushed
attachments must instead ride the out-of-pack sidecar lane (the same
lane as Redaction/StateVisibility), where the server can verify them
per-kind at finalize while the pack itself stays forgery-sealed. Every
other type keeps its ObjectType::packable answer.
Sourcepub fn packable_for_pull(self) -> bool
pub fn packable_for_pull(self) -> bool
Whether this object type may ride the server→client pull/clone pack.
Identical to ObjectType::packable: attachments are carried in the
pull pack exactly as today. The push/pull split exists solely so the
push direction can exclude StateAttachment without disturbing the
working pull carriage.
pub fn pack_object_type(self) -> Result<PackObjectType>
pub fn bucket(self) -> ObjectTypeBucket
Trait Implementations§
Source§impl Clone for ObjectType
impl Clone for ObjectType
Source§fn clone(&self) -> ObjectType
fn clone(&self) -> ObjectType
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more