use serde::{Deserialize, Serialize};
pub const HANDSHAKE_TOKEN: [u8; 32] = [
101, 114, 101, 98, 117, 115, 119, 105, 115, 112, 101, 114, 115, 102, 105,
110, 100, 103, 114, 97, 115, 112, 100, 101, 101, 112, 119, 105, 116, 104, 105, 110,
];
#[derive(Serialize, Deserialize, Debug)]
pub enum ErebusRequestType {
#[serde(rename = "auth")]
Authenticate,
#[serde(rename = "obj")]
ObjectCache,
#[serde(rename = "url")]
UrlCache,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ObjectCacheRequest {
pub name: String,
pub tags: Vec<String>,
pub body: Option<String>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct UrlCacheRequest {
pub method: String,
pub url: String,
pub headers: Vec<(String, String)>,
pub body: Option<String>,
}
#[derive(Serialize, Deserialize, Debug)]
pub enum ErebusPackedRequest {
#[serde(rename = "auth")]
Authenticate(Vec<u8>),
#[serde(rename = "obj")]
ObjectCache(ObjectCacheRequest),
#[serde(rename = "url")]
UrlCache(UrlCacheRequest),
}
#[derive(Serialize, Deserialize, Debug)]
pub enum ErebusResponse {
Proceed,
Error(String),
Success(Vec<u8>),
}
pub type ObjectCacheResponse = Option<String>;
pub type UrlCacheResponse = (u16, std::collections::HashMap<String, String>, String);