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