Extendible

Trait Extendible 

pub trait Extendible:
    Sized
    + Serialize
    + 'static {
    // Required methods
    fn schema_mut() -> &'static LazyLock<RwLock<Object>>;
    fn validators(    ) -> &'static RwLock<Vec<Box<dyn Fn(&Map<String, Value>, &mut dyn FnMut() -> Path, &mut Report) + Send + Sync>>>;
    fn overlay_map_mut(&mut self) -> &mut Map<String, Value>;
    fn overlay_map(&self) -> &Map<String, Value>;

    // Provided methods
    fn merged_schema() -> RefOr<Schema> { ... }
    fn get_extended<E>(&self) -> Result<E, Error>
       where E: DeserializeOwned { ... }
}

Required Methods§

fn schema_mut() -> &'static LazyLock<RwLock<Object>>

fn validators() -> &'static RwLock<Vec<Box<dyn Fn(&Map<String, Value>, &mut dyn FnMut() -> Path, &mut Report) + Send + Sync>>>

fn overlay_map_mut(&mut self) -> &mut Map<String, Value>

fn overlay_map(&self) -> &Map<String, Value>

Provided Methods§

fn merged_schema() -> RefOr<Schema>

fn get_extended<E>(&self) -> Result<E, Error>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§