use super::atom::{self, Atom};
use super::map::map_new;
use {Env, NifResult, Term};
pub fn get_ex_struct_name(map: Term) -> NifResult<Atom> {
let env = map.get_env();
map.map_get(atom::__struct__().to_term(env))
.and_then(|e| Atom::from_term(e))
}
pub fn make_ex_struct<'a>(env: Env<'a>, struct_module: &str) -> NifResult<Term<'a>> {
let map = map_new(env);
let struct_atom = atom::__struct__().to_term(env);
let module_atom = Atom::from_str(env, struct_module)?.to_term(env);
map.map_put(struct_atom, module_atom)
}