Skip to main content

UploadSessionState

Struct UploadSessionState 

Source
pub struct UploadSessionState {
    pub namespace_id: NamespaceId,
    pub upload_id: UploadId,
    pub content_id: ContentId,
    pub created_at_ms: u64,
    pub transport: UploadSessionTransport,
    pub state: UploadSessionLifecycle,
}
Expand description

Tracks one durable content-upload workflow independently of commit publication.

The record is an identity, a transport, and a state. Everything a transport needs lives in its own variant and everything a state needs lives in its own variant, so the combinations that used to be spelled with independent optional fields — a proxied session holding a provider upload, a multipart session promising content, a completed reference in two places at once — are not shapes this type has.

See upload before publish.

Fields§

§namespace_id: NamespaceId

Namespace authorized to consume the staged content.

§upload_id: UploadId

Durable session identity used by staging and completion requests.

§content_id: ContentId

Content object this session writes, allocated when the session began.

The identity exists before any byte is read, so the final object key is known up front and belongs to exactly this session. Every reference the record holds names this object; see the decoder below, which refuses a record that disagrees with itself.

§created_at_ms: u64

Unix-millisecond creation stamp.

§transport: UploadSessionTransport

How the bytes reach object storage, settled when the session opened.

§state: UploadSessionLifecycle

The session’s lifecycle, and the field every upload operation compare-and-swaps against.

Trait Implementations§

Source§

impl Clone for UploadSessionState

Source§

fn clone(&self) -> UploadSessionState

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for UploadSessionState

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for UploadSessionState

Source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where D: Deserializer<'de>,

Reads one session record and proves the one relationship its shape cannot: that every reference it holds names the object it owns.

The transport promise and the staged or completed reference are all about the same content object, whose identity the session allocated before any byte moved. A record whose references disagree with its own content_id describes two objects and cannot be acted on — a completion would verify one key and publish another — so it is refused at load like any other corruption, with no shim and no salvage.

Source§

impl Eq for UploadSessionState

Source§

impl PartialEq for UploadSessionState

Source§

fn eq(&self, other: &UploadSessionState) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for UploadSessionState

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for UploadSessionState

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.