1use serde::{Deserialize, Serialize};
2
3pub const HANDSHAKE_TOKEN: [u8; 32] = [
4 101, 114, 101, 98, 117, 115, 119, 105, 115, 112, 101, 114, 115, 102, 105,
5 110, 100, 103, 114, 97, 115, 112, 100, 101, 101, 112, 119, 105, 116, 104, 105, 110,
6];
7
8#[derive(Serialize, Deserialize, Debug)]
9pub enum ErebusRequestType {
10 #[serde(rename = "auth")]
11 Authenticate,
12 #[serde(rename = "obj")]
13 ObjectCache,
14 #[serde(rename = "url")]
15 UrlCache,
16}
17
18#[derive(Serialize, Deserialize, Debug)]
19pub struct ObjectCacheRequest {
20 pub name: String,
21 pub tags: Vec<String>,
22 pub body: Option<String>,
23}
24
25#[derive(Serialize, Deserialize, Debug)]
26pub struct ObjectCacheResponse {
27 pub body: Option<String>,
28}
29
30#[derive(Serialize, Deserialize, Debug)]
31pub struct UrlCacheRequest {
32 pub method: String,
33 pub url: String,
34 pub headers: Vec<(String, String)>,
35 pub body: Option<String>,
36}
37
38#[derive(Serialize, Deserialize, Debug)]
39pub enum ErebusPackedRequest {
40 #[serde(rename = "auth")]
41 Authenticate(Vec<u8>),
42 #[serde(rename = "obj")]
43 ObjectCache(ObjectCacheRequest),
44 #[serde(rename = "url")]
45 UrlCache(UrlCacheRequest),
46}
47
48#[derive(Serialize, Deserialize, Debug)]
49pub enum ErebusResponse {
50 Proceed,
51 Error(String),
52 Success(Vec<u8>),
53}
54
55pub type UrlCacheResponse = (u16, std::collections::HashMap<String, String>, String);