#[derive(Debug, Default)]
pub struct LifecycleExpiration {
pub date: Date,
pub days: Days,
}
struct LifecycleExpirationParser;
impl LifecycleExpirationParser {
fn parse_xml<T: Peek + Next>(tag_name: &str, stack: &mut T) -> Result<LifecycleExpiration, XmlParseError> {
try!(start_element(tag_name, stack));
let mut obj = LifecycleExpiration::default();
loop {
let current_name = try!(peek_at_name(stack));
match current_name.as_ref() {
"Date" => {
obj.date = try!(DateParser::parse_xml("Date", stack));
continue;
},
"Days" => {
obj.days = try!(DaysParser::parse_xml("Days", stack));
continue;
},
_ => break,
}
}
try!(end_element(tag_name, stack));
Ok(obj)
}
}
struct LifecycleExpirationWriter;
impl LifecycleExpirationWriter {
fn write_params(params: &mut Params, name: &str, obj: &LifecycleExpiration) {
let mut prefix = name.to_string();
if prefix != "" { prefix.push_str("."); }
DateWriter::write_params(params, &(prefix.to_string() + "Date"), &obj.date);
DaysWriter::write_params(params, &(prefix.to_string() + "Days"), &obj.days);
}
}