Skip to main content

MetadataLimits

Struct MetadataLimits 

Source
pub struct MetadataLimits { /* private fields */ }
Expand description

Domain-specific metadata limits composed with a shared JSON profile.

MetadataLimits deliberately keeps metadata-entry, schema-field, and key bounds separate from generic JSON map/key accounting. This preserves the protocol’s domain limits while the directional JSON limit types handle document traversal, payload lengths, and complete input/output bytes.

§Examples

use qubit_metadata::MetadataLimits;

let limits = MetadataLimits::builder().max_key_bytes(128).build()?;
assert_eq!(limits.max_key_bytes(), 128);

Implementations§

Source§

impl MetadataLimits

Source

pub fn builder() -> MetadataLimitsBuilder

Creates a builder with the default JSON profile and domain limits.

§Returns

A builder initialized with the protocol defaults.

Source

pub const fn json_decode(&self) -> JsonDecodeLimits

Returns the JSON budgets used to decode an untrusted document.

The returned value is copied and can be used to inspect the profile without changing this limits value.

§Returns

The decoding profile stored in this value.

Source

pub const fn json_encode(&self) -> JsonEncodeLimits

Returns the JSON budgets used to encode a document.

The returned value is copied and can be used to inspect the profile without changing this limits value.

§Returns

The encoding profile stored in this value.

Source

pub const fn max_metadata_entries(&self) -> usize

Returns the maximum number of entries accepted in a metadata map.

This domain-specific bound is independent of generic JSON map accounting.

§Returns

The metadata-entry limit stored in this value.

Source

pub const fn max_schema_fields(&self) -> usize

Returns the maximum number of fields accepted in a metadata schema.

This domain-specific bound is independent of generic JSON traversal limits.

§Returns

The schema-field limit stored in this value.

Source

pub const fn max_key_bytes(&self) -> usize

Returns the maximum UTF-8 byte length accepted for one key.

The byte count applies to metadata and schema keys and is distinct from the generic JSON key budget.

§Returns

The key-byte limit stored in this value.

Source

pub fn validate(&self) -> Result<(), Error>

Validates receiver-controlled domain limits against protocol hard caps.

§Errors

Returns a JSON error when the metadata-entry, schema-field, or key-byte limit exceeds its corresponding protocol maximum.

Trait Implementations§

Source§

impl Clone for MetadataLimits

Source§

fn clone(&self) -> Self

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 Copy for MetadataLimits

Source§

impl Debug for MetadataLimits

Source§

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

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

impl Default for MetadataLimits

Source§

fn default() -> Self

Creates the protocol’s default metadata and JSON limits.

The defaults satisfy the domain hard caps, so construction cannot fail.

§Returns

A limits value containing the standard decoding, encoding, and domain profiles.

Source§

impl Eq for MetadataLimits

Source§

impl Hash for MetadataLimits

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for MetadataLimits

Source§

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

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

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for MetadataLimits

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> 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> IntoValueDefault<T> for T

Source§

fn into_value_default(self) -> T

Returns the owned value unchanged as the default.

§Returns

The input value, moved without cloning.

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.