set_as_struct lifetimes