pub fn possible_types(&self, t: &MetaType<S>) -> Vec<&MetaType<S>> {
        match *t {
            MetaType::Union(UnionMeta {
                ref of_type_names, ..
            }) => of_type_names
                .iter()
                .flat_map(|t| self.concrete_type_by_name(t))
                .collect(),
            MetaType::Interface(InterfaceMeta { ref name, .. }) => self
                .concrete_type_list()
                .into_iter()
                .filter(|t| match **t {
                    MetaType::Object(ObjectMeta {
                        ref interface_names,
                        ..
                    }) => interface_names.iter().any(|iname| iname == name),
                    _ => false,
                })
                .collect(),
            _ => panic!("Can't retrieve possible types from non-abstract meta type"),
        }
    }
/// A list of possible typeees for a given type.
A list of possible typeees for a given type.
A list of possible typeees for a given type .
pub fn possible_types(&self, t: &MetaType<S>) -> Vec<&MetaType<S>> {
        match *t {
            MetaType::Union(UnionMeta {
                ref of_type_names, ..
            }) => of_type_names
                .iter()
                .flat_map(|t| self.concrete_type_by_name(t))
                .collect(),
            MetaType::Interface(InterfaceMeta { ref name, .. }) => self
                .concrete_type_list()
                .into_iter()
                .filter(|t| match **t {
                    MetaType::Object(ObjectMeta {
                        ref interface_names,
                        ..
                    }) => interface_names.iter().any(|iname| iname == name),
                    _ => false,
                })
                .collect(),
            _ => panic!("Can't retrieve possible types from non-abstract meta type"),
        }
    }
pub fn possible_types ( & self , t : & MetaType < S > ) -> Vec < & MetaType < S > > { match * t { MetaType :: Union ( UnionMeta { ref of_type_names , .. } ) => of_type_names . iter ( ) . flat_map ( | t | self . concrete_type_by_name ( t ) ) . collect ( ) , MetaType :: Interface ( InterfaceMeta { ref name , .. } ) => self . concrete_type_list ( ) . into_iter ( ) . filter ( | t | match * * t { MetaType :: Object ( ObjectMeta { ref interface_names , .. } ) => interface_names . iter ( ) . any ( | iname | iname == name ) , _ => false , } ) . collect ( ) , _ => panic ! ( " " ) , } }
A list of possible typeees for a given type.
A list of possible typeees for a given type .
&self
t
&MetaType<S>
&self
t
&MetaType<S>