1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
use std::io::{Error, ErrorKind}; use std::convert::TryFrom; use crate::{Method, Status, Version}; pub fn parse_method(data: Vec<u8>) -> Result<Method, Error> { let data: &[u8] = &data; Method::try_from(data) } pub fn parse_uri(data: Vec<u8>) -> Result<String, Error> { match String::from_utf8(data) { Ok(uri) => Ok(uri), Err(e) => Err(Error::new(ErrorKind::InvalidData, e.to_string())) } } pub fn parse_status(data: Vec<u8>) -> Result<Status, Error> { let data: &[u8] = &data; Status::try_from(data) } pub fn parse_version(data: Vec<u8>) -> Result<Version, Error> { let data: &[u8] = &data; Version::try_from(data) }