newick_rs/
tree.rs

1pub trait FromNewick: Sized {
2    fn leaf(name: String) -> Self;
3    fn internal(name: String, children: Vec<Self>) -> Self;
4
5    fn update_length(self, length: Option<f64>) -> Self;
6}
7
8pub trait ToNewick {
9    type Child: ToNewick;
10
11    fn get_name(&self) -> String;
12    fn get_children<'a>(&'a self) -> Vec<&'a Self::Child>;
13    fn get_length(&self) -> Option<f64>;
14}