pub trait IoTarget: Send {
// Required methods
fn flush_domains(&self) -> &[FlushDomain];
fn warranty(&self) -> WarrantyClass;
fn geometry(&self) -> Geometry;
fn capabilities(&self) -> Capabilities;
// Provided method
fn describe(&self) -> IoTargetDescription { ... }
}Expand description
A target: what a write or a read addresses and a commit makes durable, defined by the contract’s obligations and by what it reports here (DI-D-50).
A target is not where its I/O runs: the backend it is attached to runs that, by whatever means it has to reach what backs the target.
Required Methods§
Sourcefn flush_domains(&self) -> &[FlushDomain]
fn flush_domains(&self) -> &[FlushDomain]
Every flush domain its writes depend on. The declaration must be complete; an extra domain is safe, a missing one is not. None means it shares fate with every target.
Sourcefn warranty(&self) -> WarrantyClass
fn warranty(&self) -> WarrantyClass
How far it honours its obligations.
Sourcefn capabilities(&self) -> Capabilities
fn capabilities(&self) -> Capabilities
What it offers beyond its obligations.
Provided Methods§
Sourcefn describe(&self) -> IoTargetDescription
fn describe(&self) -> IoTargetDescription
Everything it states, as the core takes it.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".