depends 0.11.0

Ergonomic, performant, incremental computation between arbitrary types
Documentation
use std::rc::Rc;

/// A string name for each graph node, useful for rendering graph
/// visualisations.
pub trait Named {
    fn name() -> &'static str;
}

impl<T: Named> Named for Rc<T> {
    fn name() -> &'static str {
        T::name()
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_named_rc() {
        assert_eq!(Rc::<String>::name(), "String");
    }
}