[−][src]Trait envoy_sdk::host::shared_data::SharedData
An interface of the Envoy
Shared Data API
.
Basic usage of SharedData
:
use envoy::host::SharedData; let shared_data = SharedData::default(); let value = shared_data.get("shared_key")?; shared_data.set("shared_key", b"shared value", None)?;
Injecting SharedData
into a HTTP Filter as a dependency:
use envoy::host::SharedData; struct MyHttpFilter<'a> { shared_data: &'a dyn SharedData, } impl<'a> MyHttpFilter<'a> { /// Creates a new instance parameterized with a given [`SharedData`] implementation. pub fn new(shared_data: &'a dyn SharedData) -> Self { MyHttpFilter { shared_data } } /// Creates a new instance parameterized with the default [`SharedData`] implementation. pub fn default() -> Self { Self::new(SharedData::default()) } }
Required methods
fn get(
&self,
key: &str
) -> Result<(Option<ByteString>, Option<OptimisticLockVersion>)>
&self,
key: &str
) -> Result<(Option<ByteString>, Option<OptimisticLockVersion>)>
Returns shared data by key.
Arguments
key
- key.
Return value
value
- an opaque blob of bytes.version
- optimistic lock version.
fn set(
&self,
key: &str,
value: &[u8],
version: Option<OptimisticLockVersion>
) -> Result<()>
&self,
key: &str,
value: &[u8],
version: Option<OptimisticLockVersion>
) -> Result<()>
Shares data under a given key.
Arguments
key
- key.value
- an opaque blob of bytes.version
- optimistic lock version.
Implementations
impl dyn SharedData
[src]
pub fn default() -> &'static dyn SharedData
[src]
Returns the default implementation that interacts with Envoy
through its ABI
.