pub trait ExtensionState:
Sized
+ Serialize
+ for<'de> Deserialize<'de> {
const EXTENSION_NAME: &'static str;
const VERSION: &'static str;
// Provided methods
fn from_value(value: &Value) -> Result<Self> { ... }
fn to_value(&self) -> Result<Value> { ... }
fn from_extension_data(extension_data: &ExtensionData) -> Option<Self> { ... }
fn to_extension_data(
&self,
extension_data: &mut ExtensionData,
) -> Result<()> { ... }
}Expand description
Helper trait for extension-specific state management
Required Associated Constants§
Sourceconst EXTENSION_NAME: &'static str
const EXTENSION_NAME: &'static str
The name of the extension
Provided Methods§
Sourcefn from_value(value: &Value) -> Result<Self>
fn from_value(value: &Value) -> Result<Self>
Convert from JSON value
Sourcefn from_extension_data(extension_data: &ExtensionData) -> Option<Self>
fn from_extension_data(extension_data: &ExtensionData) -> Option<Self>
Get state from extension data
Sourcefn to_extension_data(&self, extension_data: &mut ExtensionData) -> Result<()>
fn to_extension_data(&self, extension_data: &mut ExtensionData) -> Result<()>
Save state to extension data
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.