kong_rs 0.2.0

Plugin Development Kit for developing Kong plugins in Rust
Documentation
use strum::{EnumString, IntoStaticStr};

use crate::{stream::Stream, KongResult};

#[derive(Debug, PartialEq, IntoStaticStr, EnumString)]
pub(crate) enum Methods {
  #[strum(serialize = "kong.ngx.get_var")]
  GetVar,
}

#[derive(Clone)]
pub struct NgxPDK {
  stream: Stream
}

impl NgxPDK {
  pub fn new(stream: Stream) -> Self {
    Self { stream }
  }

  pub async fn get_var<K: Into<String>>(&self, key: K) -> KongResult<String> {
    self.stream.ask_string_with_args(Methods::GetVar.into(), &kong_rs_protos::String { v: key.into() }).await
  }
}