Skip to main content

resolve_ref

Function resolve_ref 

Source
pub fn resolve_ref<F, T, E>(
    graph: &SchemaGraph,
    ty: &SchemaType,
    visited: &mut HashSet<TypeId>,
    f: F,
) -> Result<T, WalkerError<E>>
Expand description

Resolve any leading SchemaType::Ref hops on ty (cycle-aware) and hand the resulting non-ref body to f. Errors raised by ref handling surface as WalkerError::RefCycle / WalkerError::DanglingRef; the caller’s own error type is wrapped in WalkerError::Walker.

Decoders that consume an input other than SchemaValue (for example serde_json::Value) use this directly so the ref-resolution path is shared with the walker rather than re-implemented.