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§
Sourcefn read_schemas(&self) -> Result<Vec<Arc<Schema>>, SchemaSourceError>
fn read_schemas(&self) -> Result<Vec<Arc<Schema>>, SchemaSourceError>
Every schema package this source carries, parsed.
Sourcefn write_schema(
&self,
name: &str,
version: &str,
files: &[(String, Vec<u8>)],
) -> Result<(), SchemaSourceError>
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".