Files
pico/projects/Zeta/API/Z/classes/Strid.hpp
2026-03-24 22:22:37 +00:00

61 lines
1.4 KiB
C++
Vendored

/* Zeta API - Z/classes/Strid.hpp
______ ______________ ___
|__ / | ___|___ ___|/ \
/ /__| __| | | / - \
/______|_____| |__| /__/ \__\
Copyright (C) 2006-2024 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_Strid_HPP
#define Z_classes_Strid_HPP
#include <Z/functions/hash.hpp>
namespace Zeta {struct Strid {
UInt64 hash;
Z_INLINE Strid() Z_NOTHROW
Z_DEFAULTED({})
Z_CT(CPP11) Strid(UInt64 hash_) Z_NOTHROW
: hash(hash_) {}
Z_CT(CPP14) Strid(const Char *string) Z_NOTHROW
: hash(fnv1a_64(string)) {}
Z_CT(CPP11) operator UInt64() const Z_NOTHROW
{return hash;}
friend Z_CT(CPP11) Boolean operator ==(const Strid &lhs, const Strid &rhs) Z_NOTHROW
{return lhs.hash == rhs.hash;}
friend Z_CT(CPP11) Boolean operator ==(const Strid &lhs, UInt64 rhs) Z_NOTHROW
{return lhs.hash == rhs;}
friend Z_CT(CPP11) Boolean operator ==(UInt64 lhs, const Strid &rhs) Z_NOTHROW
{return lhs == rhs.hash;}
friend Z_CT(CPP11) Boolean operator !=(const Strid &lhs, const Strid &rhs) Z_NOTHROW
{return lhs.hash != rhs.hash;}
friend Z_CT(CPP11) Boolean operator !=(const Strid &lhs, UInt64 rhs) Z_NOTHROW
{return lhs.hash != rhs;}
friend Z_CT(CPP11) Boolean operator !=(UInt64 lhs, const Strid &rhs) Z_NOTHROW
{return lhs != rhs.hash;}
};}
#endif // Z_classes_Strid_HPP