pub trait NewProtocolStorage<T: NodeType>: StorageTrait<T> {
// Required methods
fn append_cert2<'life0, 'async_trait>(
&'life0 self,
view: ViewNumber,
cert: Certificate2<T>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn append_high_qc2<'life0, 'async_trait>(
&'life0 self,
high_qc: Certificate1<T>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn load_high_qc2<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<Certificate1<T>>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}Expand description
New protocol storage extension for data that is not part of the legacy HotShot storage trait.
Required Methods§
fn append_cert2<'life0, 'async_trait>(
&'life0 self,
view: ViewNumber,
cert: Certificate2<T>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Sourcefn append_high_qc2<'life0, 'async_trait>(
&'life0 self,
high_qc: Certificate1<T>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn append_high_qc2<'life0, 'async_trait>(
&'life0 self,
high_qc: Certificate1<T>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Persist the locked QC, written before each phase-2 vote so the lock survives a restart instead of regressing to the decided-anchor QC.
Sourcefn load_high_qc2<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<Certificate1<T>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn load_high_qc2<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<Certificate1<T>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Load the persisted locked QC, if any.
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.