779873680b
* Squish prev commits into a single atop master * Enable http and ws during testing * Checkout clobbered files from master * Further un-clobber rest_api changes * Tidy formatting * Do rust-fmt's job for it :|
52 lines
1.3 KiB
Rust
52 lines
1.3 KiB
Rust
use serde::{Deserialize, Serialize};
|
|
use std::net::Ipv4Addr;
|
|
|
|
/// Defines the encoding for the API.
|
|
#[derive(Clone, Serialize, Deserialize, Copy)]
|
|
pub enum ApiEncodingFormat {
|
|
JSON,
|
|
YAML,
|
|
SSZ,
|
|
}
|
|
|
|
impl ApiEncodingFormat {
|
|
pub fn get_content_type(&self) -> &str {
|
|
match self {
|
|
ApiEncodingFormat::JSON => "application/json",
|
|
ApiEncodingFormat::YAML => "application/yaml",
|
|
ApiEncodingFormat::SSZ => "application/ssz",
|
|
}
|
|
}
|
|
}
|
|
|
|
impl From<&str> for ApiEncodingFormat {
|
|
fn from(f: &str) -> ApiEncodingFormat {
|
|
match f {
|
|
"application/yaml" => ApiEncodingFormat::YAML,
|
|
"application/ssz" => ApiEncodingFormat::SSZ,
|
|
_ => ApiEncodingFormat::JSON,
|
|
}
|
|
}
|
|
}
|
|
|
|
/// HTTP REST API Configuration
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub struct Config {
|
|
/// Enable the REST API server.
|
|
pub enabled: bool,
|
|
/// The IPv4 address the REST API HTTP server will listen on.
|
|
pub listen_address: Ipv4Addr,
|
|
/// The port the REST API HTTP server will listen on.
|
|
pub port: u16,
|
|
}
|
|
|
|
impl Default for Config {
|
|
fn default() -> Self {
|
|
Config {
|
|
enabled: false,
|
|
listen_address: Ipv4Addr::new(127, 0, 0, 1),
|
|
port: 5052,
|
|
}
|
|
}
|
|
}
|