pub fn resolve_desc<S: AsRef<Sym>>(&self, sym: S) -> Option<DescriptorResolution> {
        let mut segs = sym.as_ref().segs();
        let desc_bind = match segs.next() {
            Some(Seg::Index(desc_set)) => {
                if let Some(Seg::Index(bind_point)) = segs.next() {
                    DescriptorBinding::new(desc_set as u32, bind_point as u32)
                } else { return None; }
            },
            Some(Seg::Name(name)) => {
                if let Some(ResourceLocator::Descriptor(desc_bind)) = self.var_name_map.get(name) {
                    *desc_bind
                } else { return None; }
            },
            _ => return None,
        };
        let desc_ty = self.desc_map.get(&desc_bind.into())?;
        let rem_sym = segs.remaining();
        let member_var_res = desc_ty.resolve(rem_sym);
        let desc_res = DescriptorResolution { desc_bind, desc_ty, member_var_res };
        Some(desc_res)
    }
/// Get the metadata of a descriptor variable identified by a symbol.
/// If the exact variable cannot be resolved, the descriptor part of the
/// resolution will still be returned, if possible.
Get the metadata of a descriptor variable identified by a symbol.
If the exact variable cannot be resolved, the descriptor part of the
resolution will still be returned, if possible.
Get the metadata of a descriptor variable identified by a symbol . If the exact variable cannot be resolved the descriptor part of the resolution will still be returned if possible .
pub fn resolve_desc<S: AsRef<Sym>>(&self, sym: S) -> Option<DescriptorResolution> {
        let mut segs = sym.as_ref().segs();
        let desc_bind = match segs.next() {
            Some(Seg::Index(desc_set)) => {
                if let Some(Seg::Index(bind_point)) = segs.next() {
                    DescriptorBinding::new(desc_set as u32, bind_point as u32)
                } else { return None; }
            },
            Some(Seg::Name(name)) => {
                if let Some(ResourceLocator::Descriptor(desc_bind)) = self.var_name_map.get(name) {
                    *desc_bind
                } else { return None; }
            },
            _ => return None,
        };
        let desc_ty = self.desc_map.get(&desc_bind.into())?;
        let rem_sym = segs.remaining();
        let member_var_res = desc_ty.resolve(rem_sym);
        let desc_res = DescriptorResolution { desc_bind, desc_ty, member_var_res };
        Some(desc_res)
    }
pub fn resolve_desc < S : AsRef < Sym > > ( & self , sym : S ) -> Option < DescriptorResolution > { let mut segs = sym . as_ref ( ) . segs ( ) ; let desc_bind = match segs . next ( ) { Some ( Seg :: Index ( desc_set ) ) => { if let Some ( Seg :: Index ( bind_point ) ) = segs . next ( ) { DescriptorBinding :: new ( desc_set as u32 , bind_point as u32 ) } else { return None ; } } , Some ( Seg :: Name ( name ) ) => { if let Some ( ResourceLocator :: Descriptor ( desc_bind ) ) = self . var_name_map . get ( name ) { * desc_bind } else { return None ; } } , _ => return None , } ; let desc_ty = self . desc_map . get ( & desc_bind . into ( ) ) ? ; let rem_sym = segs . remaining ( ) ; let member_var_res = desc_ty . resolve ( rem_sym ) ; let desc_res = DescriptorResolution { desc_bind , desc_ty , member_var_res } ; Some ( desc_res ) }
Get the metadata of a descriptor variable identified by a symbol.
Get the metadata of a descriptor variable identified by a symbol .
&self
sym
S
&self
sym
S