[−][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", Some(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<Bytes>, Option<u32>)>
Returns shared data by key.
Arguments
key
- key.
Return value
value
- an opaque blob of bytes.cas
- CAS options.
fn set(&self, key: &str, value: Option<&[u8]>, cas: Option<u32>) -> Result<()>
Implementations
impl dyn SharedData
[src]
pub fn default() -> &'static dyn SharedData
[src]
Returns the default implementation that interacts with Envoy
through its ABI
.