pub fn insert_env<'e>(self, env : &mut Env<'e>, live : &Store<LiveZst>) -> NamePtr<'e> {
        match self {
            Anon => unreachable!("Anon should always begin in the environment!"),
            Str(pfx, sfx) => {
                let pfx = pfx.insert_env(env, live);
                match sfx {
                    Ptr::E(index, _, z) => {
                        let sfx2 = env.store.strings.extend_safe(index, z);
                        assert_eq!(sfx, sfx2);
                        Str(pfx, sfx2).alloc(env)
                    },
                    Ptr::L(index, h, z) => {
                        let sfx = live.strings.get_elem(index, h, z).clone();
                        pfx.new_str(sfx, env)
                    }
                }
            },
            Num(pfx, sfx) => pfx.insert_env(env, live).new_num(sfx, env)
        }
    }
// This is the jankiest once since we have to deal with String.
This is the jankiest once since we have to deal with String.
This is the jankiest once since we have to deal with String .
pub fn insert_env<'e>(self, env : &mut Env<'e>, live : &Store<LiveZst>) -> NamePtr<'e> {
        match self {
            Anon => unreachable!("Anon should always begin in the environment!"),
            Str(pfx, sfx) => {
                let pfx = pfx.insert_env(env, live);
                match sfx {
                    Ptr::E(index, _, z) => {
                        let sfx2 = env.store.strings.extend_safe(index, z);
                        assert_eq!(sfx, sfx2);
                        Str(pfx, sfx2).alloc(env)
                    },
                    Ptr::L(index, h, z) => {
                        let sfx = live.strings.get_elem(index, h, z).clone();
                        pfx.new_str(sfx, env)
                    }
                }
            },
            Num(pfx, sfx) => pfx.insert_env(env, live).new_num(sfx, env)
        }
    }
pub fn insert_env < ' e > ( self , env : & mut Env < ' e > , live : & Store < LiveZst > ) -> NamePtr < ' e > { match self { Anon => unreachable ! ( " " ) , Str ( pfx , sfx ) => { let pfx = pfx . insert_env ( env , live ) ; match sfx { Ptr :: E ( index , _ , z ) => { let sfx2 = env . store . strings . extend_safe ( index , z ) ; assert_eq ! ( sfx sfx2 ) ; Str ( pfx , sfx2 ) . alloc ( env ) } , Ptr :: L ( index , h , z ) => { let sfx = live . strings . get_elem ( index , h , z ) . clone ( ) ; pfx . new_str ( sfx , env ) } } } , Num ( pfx , sfx ) => pfx . insert_env ( env , live ) . new_num ( sfx , env ) } }
This is the jankiest once since we have to deal with String.
This is the jankiest once since we have to deal with String .
self
env
&mut Env<'e>
live
&Store<LiveZst>
self
env
&mut Env<'e>
live
&Store<LiveZst>