use crate::{types::Headers, wit};
#[non_exhaustive]
pub struct HttpRequestParts {
pub url: String,
pub method: http::Method,
pub headers: Headers,
}
impl From<wit::HttpRequestParts> for HttpRequestParts {
fn from(parts: wit::HttpRequestParts) -> Self {
Self {
url: parts.url,
method: parts.method.into(),
headers: parts.headers.into(),
}
}
}
impl From<HttpRequestParts> for wit::HttpRequestParts {
fn from(parts: HttpRequestParts) -> Self {
Self {
url: parts.url,
method: parts.method.into(),
headers: parts.headers.into(),
}
}
}
#[derive(Default)]
pub struct OnRequestOutput {
pub(crate) context: Vec<u8>,
pub(crate) contract_key: Option<String>,
}
impl OnRequestOutput {
pub fn new() -> Self {
Self::default()
}
pub fn contract_key(mut self, contract_key: impl Into<String>) -> Self {
self.contract_key = Some(contract_key.into());
self
}
pub fn context(mut self, context: impl Into<Vec<u8>>) -> Self {
self.context = context.into();
self
}
}