Fix build

This commit is contained in:
Aditya Manthramurthy 2019-05-30 15:14:05 -07:00
parent d91cdcf02c
commit 21f4de0540
2 changed files with 49 additions and 0 deletions

33
src/minio/types.rs Normal file
View File

@ -0,0 +1,33 @@
use bytes::Bytes;
use hyper::{body::Body, Response};
use std::string;
use xml;
pub struct Region(String);
impl Region {
pub fn new(s: &str) -> Region {
Region(s.to_string())
}
pub fn empty() -> Region {
Region::new("")
}
pub fn to_string(&self) -> String {
self.0.clone()
}
}
#[derive(Debug)]
pub enum Err {
InvalidUrl(String),
InvalidEnv(String),
HttpErr(http::Error),
HyperErr(hyper::Error),
FailStatusCodeErr(hyper::StatusCode, Bytes),
Utf8DecodingErr(string::FromUtf8Error),
XmlParseErr(xml::reader::Error),
UnexpectedEOF(String),
RawSvcErr(hyper::StatusCode, Response<Body>),
}

16
src/minio/xml.rs Normal file
View File

@ -0,0 +1,16 @@
use crate::minio::types::{Err, Region};
use bytes::Bytes;
use xml::reader::{EventReader, XmlEvent};
pub fn parse_bucket_location(b: Bytes) -> Result<Region, Err> {
let mut reader = EventReader::new(b.as_ref());
loop {
let event = reader.next();
match event {
Err(err) => return Err(Err::XmlParseErr(err)),
Ok(XmlEvent::EndDocument) => return Err(Err::UnexpectedEOF("xml parsing".to_string())),
Ok(XmlEvent::Characters(s)) => return Ok(Region::new(&s)),
_ => continue,
};
}
}