erebus-sdk-rust 1.4.0

Erebus SDK for Rust
Documentation
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 ObjectCacheResponse {
    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 UrlCacheResponse = (u16, std::collections::HashMap<String, String>, String);