#[non_exhaustive]pub struct BlobUploadResponse {
pub account_id: Id,
pub blob_id: Id,
pub content_type: String,
pub size: u64,
pub sha256: Option<Sha256>,
pub extra: Map<String, Value>,
}Expand description
Response body returned by a successful blob upload (RFC 8620 §6.1).
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.account_id: IdThe account the blob was uploaded to.
blob_id: IdServer-assigned opaque blob identifier.
content_type: StringMedia type of the uploaded blob as determined by the server.
size: u64Size of the uploaded blob in bytes.
sha256: Option<Sha256>SHA-256 digest of the uploaded blob, present only when the
server advertises the urn:ietf:params:jmap:cid capability
(draft-atwood-jmap-cid-00 §3).
The wire format is a 64-character lowercase-hex string per
the draft’s ABNF (%x30-39 / %x61-66). The typed
jmap_cid_types::Sha256 enforces that shape on
deserialize: a server response carrying a sha256 field that
is not exactly 64 bytes of lowercase hex will fail to parse
and surface as ClientError::Parse. Servers that do not
implement the CID extension omit the field; the typed
representation here is None.
History: bd:JMAP-v9py.13 promoted this field from a permissive
Option<String> to the typed Option<jmap_cid_types::Sha256>.
The previous implementation tolerated uppercase hex via a
permissive is_valid_sha256_hex validator that accepted
ASCII hex of either case plus a normalize-to-lowercase
step before integrity comparison. The typed path is strict;
the inter-op question (whether to recover the uppercase
tolerance via a custom Deserialize wrapper) is tracked by
bd:JMAP-noz7.
extra: Map<String, Value>Catch-all for vendor / site / private extension fields not covered by the typed fields above. Preserves unknown fields across deserialize/serialize round-trip per workspace extras-preservation policy (see workspace AGENTS.md).
Trait Implementations§
Source§impl Clone for BlobUploadResponse
impl Clone for BlobUploadResponse
Source§fn clone(&self) -> BlobUploadResponse
fn clone(&self) -> BlobUploadResponse
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BlobUploadResponse
impl Debug for BlobUploadResponse
Source§impl<'de> Deserialize<'de> for BlobUploadResponse
impl<'de> Deserialize<'de> for BlobUploadResponse
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for BlobUploadResponse
impl PartialEq for BlobUploadResponse
Source§fn eq(&self, other: &BlobUploadResponse) -> bool
fn eq(&self, other: &BlobUploadResponse) -> bool
self and other values to be equal, and is used by ==.