pub fn update_ref_vector_pop_back(self) -> Option<(TypedValue, TypedValue)> {
        let (vec_ty, vec_val, vec_ptr) = self.decompose();
        let elem_ty = vec_ty.into_ref_vector_elem(Some(true));
        let mut elems = vec_val.into_vector();
        match elems.pop() {
            None => None,
            Some(elem_val) => {
                let elem = TypedValue {
                    ty: Type::Base(elem_ty.clone()),
                    val: elem_val,
                    ptr: Pointer::None,
                };
                let new_vec = TypedValue {
                    ty: Type::mk_ref_vector(elem_ty, true),
                    val: BaseValue::mk_vector(elems),
                    ptr: vec_ptr,
                };
                Some((new_vec, elem))
            }
        }
    }
/// Pop an element from the back of the vector
Pop an element from the back of the vector
Pop an element from the back of the vector
pub fn update_ref_vector_pop_back(self) -> Option<(TypedValue, TypedValue)> {
        let (vec_ty, vec_val, vec_ptr) = self.decompose();
        let elem_ty = vec_ty.into_ref_vector_elem(Some(true));
        let mut elems = vec_val.into_vector();
        match elems.pop() {
            None => None,
            Some(elem_val) => {
                let elem = TypedValue {
                    ty: Type::Base(elem_ty.clone()),
                    val: elem_val,
                    ptr: Pointer::None,
                };
                let new_vec = TypedValue {
                    ty: Type::mk_ref_vector(elem_ty, true),
                    val: BaseValue::mk_vector(elems),
                    ptr: vec_ptr,
                };
                Some((new_vec, elem))
            }
        }
    }
pub fn update_ref_vector_pop_back ( self ) -> Option < ( TypedValue , TypedValue ) > { let ( vec_ty , vec_val , vec_ptr ) = self . decompose ( ) ; let elem_ty = vec_ty . into_ref_vector_elem ( Some ( true ) ) ; let mut elems = vec_val . into_vector ( ) ; match elems . pop ( ) { None => None , Some ( elem_val ) => { let elem = TypedValue { ty : Type :: Base ( elem_ty . clone ( ) ) , val : elem_val , ptr : Pointer :: None , } ; let new_vec = TypedValue { ty : Type :: mk_ref_vector ( elem_ty , true ) , val : BaseValue :: mk_vector ( elems ) , ptr : vec_ptr , } ; Some ( ( new_vec , elem ) ) } } }
Pop an element from the back of the vector
Pop an element from the back of the vector
self