pub struct AttributeMap<T> { /* private fields */ }Expand description
Defines keyed durable values sharing one Attribute name.
Each instance identifies an independent stored value and lock. Add the map definition once to
crate::PersistenceSchema; pass an instance name on each access.
Implementations§
Source§impl<T> AttributeMap<T>
impl<T> AttributeMap<T>
Sourcepub fn new(name: impl Into<String>) -> Self
pub fn new(name: impl Into<String>) -> Self
Defines an unindexed Attribute map with stable name.
Sourcepub fn indexed(self, index: AttributeIndex) -> Self
pub fn indexed(self, index: AttributeIndex) -> Self
Enables search indexing for every instance using the selected index type.
Sourcepub fn sync_to_attribute_store(self) -> Self
pub fn sync_to_attribute_store(self) -> Self
Enables asynchronous latest-state projection for every AttributeMap instance.
Each instance maps by its physical Attribute name. The Flow must select a server-configured
stores with FlowConfig::attribute_store_names.
Deletions project SQL NULL, and projection failures never roll back Flow Attribute writes.
Sourcepub fn get(&self, context: &Context, instance: &str) -> HandlerResult<Option<T>>where
T: Value,
pub fn get(&self, context: &Context, instance: &str) -> HandlerResult<Option<T>>where
T: Value,
Reads one instance, returning Ok(None) when it is absent.
§Errors
Returns HandlerError when the payload cannot be decoded.
Sourcepub fn get_required(
&self,
context: &Context,
instance: &str,
) -> HandlerResult<T>where
T: Value,
pub fn get_required(
&self,
context: &Context,
instance: &str,
) -> HandlerResult<T>where
T: Value,
Reads one instance and treats absence as an error.
§Errors
Returns HandlerError when the instance is missing or cannot be decoded.
Sourcepub fn set(
&self,
context: &mut Context,
instance: &str,
value: T,
) -> HandlerResult<()>where
T: Value,
pub fn set(
&self,
context: &mut Context,
instance: &str,
value: T,
) -> HandlerResult<()>where
T: Value,
Stages one instance value for durable persistence.
§Errors
Returns HandlerError when the value cannot be encoded or indexed.
Sourcepub fn delete(&self, context: &mut Context, instance: &str) -> HandlerResult<()>
pub fn delete(&self, context: &mut Context, instance: &str) -> HandlerResult<()>
Stages deletion of one instance; missing instances are valid.
Sourcepub fn map_size(&self, context: &Context) -> HandlerResult<usize>
pub fn map_size(&self, context: &Context) -> HandlerResult<usize>
Returns the effective number of instances, including buffered writes.
Sourcepub fn all_instance_keys(&self, context: &Context) -> HandlerResult<Vec<String>>
pub fn all_instance_keys(&self, context: &Context) -> HandlerResult<Vec<String>>
Returns decoded effective instance keys in ascending string order.
Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for AttributeMap<T>
impl<T> RefUnwindSafe for AttributeMap<T>
impl<T> Send for AttributeMap<T>
impl<T> Sync for AttributeMap<T>
impl<T> Unpin for AttributeMap<T>
impl<T> UnsafeUnpin for AttributeMap<T>
impl<T> UnwindSafe for AttributeMap<T>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request