pub trait ExternalAdapter {
// Required methods
fn setup(&mut self, configuration: &Value) -> Result<()>;
fn read(
&mut self,
schema: &Schema,
types: &[TypeName],
state: &StateData,
) -> Result<Vec<ExternalObject>>;
fn write(
&mut self,
schema: &Schema,
ops: &[Op],
state: &StateData,
) -> Result<ApplyReport>;
// Provided methods
fn ensure_schema(&mut self, schema: &Schema) -> Result<ProvisionReport> { ... }
fn preview_schema(
&mut self,
schema: &Schema,
) -> Result<Option<ProvisionReport>> { ... }
}Expand description
external adapter helper trait.
Required Methods§
Provided Methods§
Sourcefn ensure_schema(&mut self, schema: &Schema) -> Result<ProvisionReport>
fn ensure_schema(&mut self, schema: &Schema) -> Result<ProvisionReport>
provision backend schema elements.
Sourcefn preview_schema(&mut self, schema: &Schema) -> Result<Option<ProvisionReport>>
fn preview_schema(&mut self, schema: &Schema) -> Result<Option<ProvisionReport>>
preview schema provisioning, writing nothing. None (the default) means this
adapter cannot preview schema; Some(report) is what ExternalAdapter::ensure_schema
would provision.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".