use std::vec; #[derive(Copy, Clone)] pub enum Status { Input = 1, Success = 2, Redirect = 3, TemporaryFailure = 4, PermanentFailure = 5, ClientCertificateRequired = 6, } pub struct Header { status: Status, meta: String, } pub struct Response { header: Header, data: std::vec::Vec, } impl Header { pub fn new(status: Status, meta: String) -> Header { return Header{ status: status, meta: meta, } } pub fn format(&self) -> String { let status: u8 = self.status as u8; return format!("{} {}\r\n", status * 10, self.meta) } } impl Response { pub fn new(header: Header, data: std::vec::Vec) -> Response { return Response{ header: header, data: data, } } pub fn format(&self) -> std::vec::Vec { let mut resp: std::vec::Vec = self.header.format().as_bytes().to_vec(); resp.extend(&self.data); return resp; } }