mod3d_gltf/
traits.rs

1pub trait Named: Sized {
2    type Index: Sized + From<usize>;
3    fn is_name(&self, name: &str) -> bool;
4    fn get_named(s: &[Self], name: &str) -> Option<Self::Index> {
5        for (i, sn) in s.iter().enumerate() {
6            if sn.is_name(name) {
7                return Some(i.into());
8            }
9        }
10        if let Ok(n) = str::parse::<usize>(name) {
11            if n < s.len() {
12                return Some(n.into());
13            }
14        }
15        None
16    }
17}