#include "estrhashof.h"

#include "estr.h"
#include "ehashfunc.h"
#include "evar.h"

size_t hash_oaat_estr(const estr& str)
{ return(hash_oaat(str._str,str.len())); }

size_t hash_lookup3_estr(const estr& str)
{
#ifdef __i386__
  return(hash_lookup3(str._str,str.len(),0x75483842));
#else  // __X86_64__
  return(hash_lookup3_64(str._str,str.len(),0x75483842,0xB5749368));
#endif
}

size_t hash_sf_estr(const estr& str)
{ return(hash_sf(str._str,str.len())); }

template <>
void estrhashof<evar>::addvar(evar& evarkey,evar& var)
{
  add(evarkey.get<estr>(),var);
}

template class ehashmap<estr,evar,hash_lookup3_estr>;

