use crate::traits::*;
pub type NewRootContext = fn(context_id: u32) -> Box<dyn RootContext>;
pub type NewStreamContext = fn(context_id: u32, root_context_id: u32) -> Box<dyn StreamContext>;
pub type NewHttpContext = fn(context_id: u32, root_context_id: u32) -> Box<dyn HttpContext>;
#[repr(u32)]
#[derive(Debug)]
pub enum LogLevel {
Trace = 0,
Debug = 1,
Info = 2,
Warn = 3,
Error = 4,
Critical = 5,
}
#[repr(u32)]
#[derive(Debug)]
pub enum Action {
Continue = 0,
Pause = 1,
}
#[repr(u32)]
#[derive(Debug)]
pub enum Status {
Ok = 0,
NotFound = 1,
BadArgument = 2,
Empty = 7,
CasMismatch = 8,
InternalFailure = 10,
}
#[repr(u32)]
#[derive(Debug)]
pub enum ContextType {
HttpContext = 0,
StreamContext = 1,
}
#[repr(u32)]
#[derive(Debug)]
pub enum BufferType {
HttpRequestBody = 0,
HttpResponseBody = 1,
DownstreamData = 2,
UpstreamData = 3,
HttpCallResponseBody = 4,
}
#[repr(u32)]
#[derive(Debug)]
pub enum MapType {
HttpRequestHeaders = 0,
HttpRequestTrailers = 1,
HttpResponseHeaders = 2,
HttpResponseTrailers = 3,
HttpCallResponseHeaders = 6,
HttpCallResponseTrailers = 7,
}
#[repr(u32)]
#[derive(Debug)]
pub enum PeerType {
Unknown = 0,
Local = 1,
Remote = 2,
}
#[repr(u32)]
#[derive(Debug)]
pub enum MetricType {
Counter = 0,
Gauge = 1,
Histogram = 2,
}
pub type Bytes = Vec<u8>;