pub trait OfdGotoTarget {
fn to_xml_string(&self) -> String;
}
#[cfg(test)]
mod tests {
use super::*;
struct DummyTarget {
page: u32,
}
impl OfdGotoTarget for DummyTarget {
fn to_xml_string(&self) -> String {
format!("<Target PageID=\"{}\"/>", self.page)
}
}
#[test]
fn test_ofd_goto_target_trait_to_xml() {
let target = DummyTarget { page: 5 };
assert_eq!(target.to_xml_string(), "<Target PageID=\"5\"/>");
}
#[test]
fn test_ofd_goto_target_trait_object() {
let target: Box<dyn OfdGotoTarget> = Box::new(DummyTarget { page: 1 });
assert_eq!(target.to_xml_string(), "<Target PageID=\"1\"/>");
}
}