use crate::ast::action::RapidRecastAction;
use serde::{Deserialize, Serialize};
use std::borrow::Cow;
#[derive(PartialEq, Debug, Serialize, Deserialize, Clone)]
pub enum RapidProtocolDefinition<'a> {
HttpProtocolDefinition(HttpStatement<'a>),
}
#[derive(PartialEq, Debug, Serialize, Deserialize, Clone)]
pub struct HttpStatement<'a> {
pub sequence: u8,
pub paths: Vec<Cow<'a, str>>,
pub methods: Vec<RapidRecastHttpMethod>,
pub actions: Vec<RapidRecastAction<'a>>,
}
#[derive(PartialEq, Debug, Serialize, Deserialize, Clone)]
pub enum RapidRecastHttpMethod {
GET,
POST,
DELETE,
UPDATE,
PATCH,
PUT,
OPTIONS,
HEAD,
CONNECT,
TRACE,
}
#[derive(PartialEq, Debug, Serialize, Deserialize, Clone)]
pub enum RapidRecastProtocolType {
HTTP,
WebSocket,
Kafka,
RabbitMQ,
Grpc,
}