Skip to main content

ValidateOptions

Struct ValidateOptions 

Source
pub struct ValidateOptions {
    pub root_id: String,
    pub require_root: bool,
    pub allow_dangling_children: bool,
    pub check_component_types: bool,
    pub check_required_props: bool,
    pub check_prop_types: bool,
    pub check_envelope: bool,
    pub check_bindings: bool,
    pub check_binding_syntax: bool,
    pub max_depth: usize,
    pub max_function_call_depth: usize,
}
Expand description

What the validator should demand of a payload.

Fields§

§root_id: String

Id the tree root must have. Defaults to ROOT_ID.

§require_root: bool

Whether a component with the root id must be present.

§allow_dangling_children: bool

Whether child references may point outside this payload.

§check_component_types: bool

Whether component types must exist in the catalog.

Turned off automatically when the catalog defines no components at all, since that means the caller has not supplied one.

§check_required_props: bool

Whether required properties are enforced.

§check_prop_types: bool

Whether property values must match the JSON type the catalog declares.

Only properties the catalog pins to one type are checked, and a value the renderer resolves — a {"path": …} binding or a function call — is never checked, because its type on the wire says nothing about the type it will have. See PropType.

§check_envelope: bool

Whether message envelopes must satisfy the v0.9 wire contract.

Applies only to the raw-message entry points (Validator::validate_json_messages and Validator::validate_messages); the component entry points are handed components directly and have no envelope to check.

§check_bindings: bool

Whether data bindings are resolved against the data model, and whether relative paths are required to sit inside a list template.

§check_binding_syntax: bool

Whether absolute binding paths must be syntactically valid JSON Pointers.

Separate from ValidateOptions::check_bindings because it needs no data model and cannot produce a false positive: a malformed escape can never resolve, whatever the data turns out to be.

§max_depth: usize

Deepest nesting accepted, for both the component graph and the raw JSON.

Defaults to MAX_DEPTH. Raising it is safe here — every walk in this crate is iterative — but a renderer on the other end may not be, and a tree this deep is a generation failure rather than a design.

§max_function_call_depth: usize

Deepest chain of function calls accepted, counting nesting through args.

Defaults to MAX_FUNCTION_CALL_DEPTH.

Implementations§

Source§

impl ValidateOptions

Source

pub fn full_surface() -> Self

The full contract, for a payload that creates a surface.

Source

pub fn incremental_update() -> Self

The relaxed contract, for a payload that updates an existing surface.

The root and the referenced components may already live on the renderer, so their absence from this payload is not an error.

Source

pub fn with_root_id(self, root_id: impl Into<String>) -> Self

Overrides the root component id.

Source

pub fn with_max_depth(self, max_depth: usize) -> Self

Overrides the maximum nesting depth.

Trait Implementations§

Source§

impl Clone for ValidateOptions

Source§

fn clone(&self) -> ValidateOptions

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 ValidateOptions

Source§

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

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

impl Default for ValidateOptions

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Eq for ValidateOptions

Source§

impl PartialEq for ValidateOptions

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for ValidateOptions

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> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.

§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more