Skip to main content

SchemaSource

Trait SchemaSource 

Source
pub trait SchemaSource {
    // Required methods
    fn read_schemas(&self) -> Result<Vec<Arc<Schema>>, SchemaSourceError>;
    fn write_schema(
        &self,
        name: &str,
        version: &str,
        files: &[(String, Vec<u8>)],
    ) -> Result<(), SchemaSourceError>;
}
Expand description

A storage backend’s schema-storage location.

read_schemas returns every schema package the source carries, parsed. write_schema installs an authored package; read-only sources (archive) return SchemaSourceError::ReadOnly. The engine consults sources in a fixed order — local storage (a backend’s own SchemaSource), built-in, remote (reserved) — see crate::engine::SchemaResolver for the resolution side.

Required Methods§

Source

fn read_schemas(&self) -> Result<Vec<Arc<Schema>>, SchemaSourceError>

Every schema package this source carries, parsed.

Source

fn write_schema( &self, name: &str, version: &str, files: &[(String, Vec<u8>)], ) -> Result<(), SchemaSourceError>

Write a schema package — (relative-path, bytes) pairs such as ("schema.yaml", …), ("types/<t>.yaml", …), ("mem-template.json", …) — into the source’s storage. Read-only sources return SchemaSourceError::ReadOnly.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§