Skip to main content

NestedSchema

Struct NestedSchema 

Source
pub struct NestedSchema(/* private fields */);
Expand description

A schema nested inside another schema.

get borrows the nested schema. Nearly always that schema is owned or shared like any other; the exception is a $ref that points back at a schema which contains it (a tree node whose children are nodes, say). Such an edge is recursive and holds only a weak pointer, because a cycle of owning pointers would never be freed. Which edge of a cycle is the recursive one is decided by document order: it is the first $ref, walking components then paths, that closes the cycle. Within one schema its kind (type, properties, oneOf, …) is walked before its discriminator mapping, so a cycle that could close through either closes through the kind.

The weak pointer always upgrades: every schema a $ref can name lives in the document’s components, and this edge can only be reached by borrowing from that document.

Two recursive edges are equal when they point at the same allocation, so comparing two independently resolved documents that contain a cycle reports them as different.

Implementations§

Source§

impl NestedSchema

Source

pub fn get(&self) -> SchemaGuard<'_>

Borrows the nested schema.

Source

pub fn is_recursive(&self) -> bool

Whether this edge points back at a schema that contains it.

Trait Implementations§

Source§

impl Debug for NestedSchema

Source§

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

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

impl PartialEq for NestedSchema

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

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> 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, 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.