[][src]Trait envoy_sdk::host::shared_data::SharedData

pub trait SharedData {
    fn get(
        &self,
        key: &str
    ) -> Result<(Option<ByteString>, Option<OptimisticLockVersion>)>;
fn set(
        &self,
        key: &str,
        value: &[u8],
        version: Option<OptimisticLockVersion>
    ) -> Result<()>; }

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>)>

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<()>

Shares data under a given key.

Arguments

  • key - key.
  • value - an opaque blob of bytes.
  • version - optimistic lock version.
Loading content...

Implementations

impl dyn SharedData[src]

pub fn default() -> &'static dyn SharedData[src]

Returns the default implementation that interacts with Envoy through its ABI.

Implementors

Loading content...