tf_r2r 0.2.0

This is a rust port of the [ROS tf library](http://wiki.ros.org/tf). It is intended for being used in robots to help keep track of multiple coordinate frames and is part of a larger suite of rust libraries that provide support for various robotics related functionality. This supports ROS2 using r2r crate.
Documentation
#[derive(Clone, Debug, Hash, Eq, PartialEq)]
pub(crate) struct TfGraphNode {
    pub(crate) child: String,
    pub(crate) parent: String,
}

#[cfg(test)]
mod test {
    use std::collections::HashMap;

    use crate::tf_graph_node::TfGraphNode;

    #[test]
    fn test() {
        let mut hash_map = HashMap::new();
        hash_map.insert(
            TfGraphNode {
                child: "child0".to_owned(),
                parent: "parent".to_owned(),
            },
            0,
        );
        assert_eq!(hash_map.len(), 1);
        hash_map.insert(
            TfGraphNode {
                child: "child0".to_owned(),
                parent: "parent".to_owned(),
            },
            1,
        );
        assert_eq!(hash_map.len(), 1);

        let mut hash_map = HashMap::new();
        hash_map.insert(
            TfGraphNode {
                child: "child0".to_owned(),
                parent: "parent0".to_owned(),
            },
            0,
        );
        assert_eq!(hash_map.len(), 1);
        hash_map.insert(
            TfGraphNode {
                child: "parent0".to_owned(),
                parent: "child0".to_owned(),
            },
            0,
        );
        assert_eq!(hash_map.len(), 2);
        hash_map.insert(
            TfGraphNode {
                child: "child0".to_owned(),
                parent: "parent1".to_owned(),
            },
            0,
        );
        assert_eq!(hash_map.len(), 3);
    }
}