hash: make operators a class friend
This makes them better discoverable by MSVC from various non-root namespaces. Signed-off-by: Simon Rozman <simon@rozman.si>
This commit is contained in:
parent
dfdc4369b8
commit
06a896ccf6
@ -258,6 +258,37 @@ namespace stdex
|
|||||||
{
|
{
|
||||||
uint8_t data8[16];
|
uint8_t data8[16];
|
||||||
uint32_t data32[4];
|
uint32_t data32[4];
|
||||||
|
|
||||||
|
inline bool operator !=(_In_ const stdex::md2_t& other) const
|
||||||
|
{
|
||||||
|
return
|
||||||
|
(data32[0] ^ other.data32[0]) |
|
||||||
|
(data32[1] ^ other.data32[1]) |
|
||||||
|
(data32[2] ^ other.data32[2]) |
|
||||||
|
(data32[3] ^ other.data32[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline bool operator ==(_In_ const stdex::md2_t& other) const
|
||||||
|
{
|
||||||
|
return !operator !=(other);
|
||||||
|
}
|
||||||
|
|
||||||
|
friend inline stdex::stream::basic& operator >>(_Inout_ stdex::stream::basic& stream, _Out_ stdex::md2_t& data)
|
||||||
|
{
|
||||||
|
if (!stream.ok()) _Unlikely_{
|
||||||
|
memset(&data, 0, sizeof(data));
|
||||||
|
return stream;
|
||||||
|
}
|
||||||
|
stream.read_array(&data, sizeof(data), 1);
|
||||||
|
return stream;
|
||||||
|
}
|
||||||
|
|
||||||
|
friend inline stdex::stream::basic& operator <<(_Inout_ stdex::stream::basic& stream, _In_ const stdex::md2_t& data)
|
||||||
|
{
|
||||||
|
if (!stream.ok()) _Unlikely_ return stream;
|
||||||
|
stream.write_array(&data, sizeof(data), 1);
|
||||||
|
return stream;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
///
|
///
|
||||||
@ -427,6 +458,38 @@ namespace stdex
|
|||||||
{
|
{
|
||||||
uint8_t data8[20];
|
uint8_t data8[20];
|
||||||
uint32_t data32[5];
|
uint32_t data32[5];
|
||||||
|
|
||||||
|
inline bool operator !=(_In_ const stdex::sha_t& other) const
|
||||||
|
{
|
||||||
|
return
|
||||||
|
(data32[0] ^ other.data32[0]) |
|
||||||
|
(data32[1] ^ other.data32[1]) |
|
||||||
|
(data32[2] ^ other.data32[2]) |
|
||||||
|
(data32[3] ^ other.data32[3]) |
|
||||||
|
(data32[4] ^ other.data32[4]);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline bool operator ==(_In_ const stdex::sha_t& other) const
|
||||||
|
{
|
||||||
|
return !operator !=(other);
|
||||||
|
}
|
||||||
|
|
||||||
|
friend inline stdex::stream::basic& operator >>(_Inout_ stdex::stream::basic& stream, _Out_ stdex::sha_t& data)
|
||||||
|
{
|
||||||
|
if (!stream.ok()) _Unlikely_{
|
||||||
|
memset(&data, 0, sizeof(data));
|
||||||
|
return stream;
|
||||||
|
}
|
||||||
|
stream.read_array(&data, sizeof(data), 1);
|
||||||
|
return stream;
|
||||||
|
}
|
||||||
|
|
||||||
|
friend inline stdex::stream::basic& operator <<(_Inout_ stdex::stream::basic& stream, _In_ const stdex::sha_t data)
|
||||||
|
{
|
||||||
|
if (!stream.ok()) _Unlikely_ return stream;
|
||||||
|
stream.write_array(&data, sizeof(data), 1);
|
||||||
|
return stream;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
///
|
///
|
||||||
@ -544,106 +607,40 @@ namespace stdex
|
|||||||
{
|
{
|
||||||
uint8_t data8[32];
|
uint8_t data8[32];
|
||||||
uint32_t data32[8];
|
uint32_t data32[8];
|
||||||
|
|
||||||
|
inline bool operator !=(_In_ const stdex::sha256_t& other) const
|
||||||
|
{
|
||||||
|
return
|
||||||
|
(data32[0] ^ other.data32[0]) |
|
||||||
|
(data32[1] ^ other.data32[1]) |
|
||||||
|
(data32[2] ^ other.data32[2]) |
|
||||||
|
(data32[3] ^ other.data32[3]) |
|
||||||
|
(data32[4] ^ other.data32[4]) |
|
||||||
|
(data32[5] ^ other.data32[5]) |
|
||||||
|
(data32[6] ^ other.data32[6]) |
|
||||||
|
(data32[7] ^ other.data32[7]);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline bool operator ==(_In_ const stdex::sha256_t& other) const
|
||||||
|
{
|
||||||
|
return !operator !=(other);
|
||||||
|
}
|
||||||
|
|
||||||
|
friend inline stdex::stream::basic& operator >>(_Inout_ stdex::stream::basic& stream, _Out_ stdex::sha256_t& data)
|
||||||
|
{
|
||||||
|
if (!stream.ok()) _Unlikely_{
|
||||||
|
memset(&data, 0, sizeof(data));
|
||||||
|
return stream;
|
||||||
|
}
|
||||||
|
stream.read_array(&data, sizeof(data), 1);
|
||||||
|
return stream;
|
||||||
|
}
|
||||||
|
|
||||||
|
friend inline stdex::stream::basic& operator <<(_Inout_ stdex::stream::basic& stream, _In_ const stdex::sha256_t& data)
|
||||||
|
{
|
||||||
|
if (!stream.ok()) _Unlikely_ return stream;
|
||||||
|
stream.write_array(&data, sizeof(data), 1);
|
||||||
|
return stream;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool operator !=(const stdex::md2_t& odtis1, const stdex::md2_t& odtis2)
|
|
||||||
{
|
|
||||||
return
|
|
||||||
(odtis1.data32[0] ^ odtis2.data32[0]) |
|
|
||||||
(odtis1.data32[1] ^ odtis2.data32[1]) |
|
|
||||||
(odtis1.data32[2] ^ odtis2.data32[2]) |
|
|
||||||
(odtis1.data32[3] ^ odtis2.data32[3]);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline bool operator ==(const stdex::md2_t& odtis1, const stdex::md2_t& odtis2)
|
|
||||||
{
|
|
||||||
return !operator !=(odtis1, odtis2);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline bool operator !=(_In_ const stdex::sha_t& odtis1, _In_ const stdex::sha_t& odtis2)
|
|
||||||
{
|
|
||||||
return
|
|
||||||
(odtis1.data32[0] ^ odtis2.data32[0]) |
|
|
||||||
(odtis1.data32[1] ^ odtis2.data32[1]) |
|
|
||||||
(odtis1.data32[2] ^ odtis2.data32[2]) |
|
|
||||||
(odtis1.data32[3] ^ odtis2.data32[3]) |
|
|
||||||
(odtis1.data32[4] ^ odtis2.data32[4]);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline bool operator ==(_In_ const stdex::sha_t& odtis1, _In_ const stdex::sha_t& odtis2)
|
|
||||||
{
|
|
||||||
return !operator !=(odtis1, odtis2);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline bool operator !=(const stdex::sha256_t& odtis1, const stdex::sha256_t& odtis2)
|
|
||||||
{
|
|
||||||
return
|
|
||||||
(odtis1.data32[0] ^ odtis2.data32[0]) |
|
|
||||||
(odtis1.data32[1] ^ odtis2.data32[1]) |
|
|
||||||
(odtis1.data32[2] ^ odtis2.data32[2]) |
|
|
||||||
(odtis1.data32[3] ^ odtis2.data32[3]) |
|
|
||||||
(odtis1.data32[4] ^ odtis2.data32[4]) |
|
|
||||||
(odtis1.data32[5] ^ odtis2.data32[5]) |
|
|
||||||
(odtis1.data32[6] ^ odtis2.data32[6]) |
|
|
||||||
(odtis1.data32[7] ^ odtis2.data32[7]);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline bool operator ==(const stdex::sha256_t& odtis1, const stdex::sha256_t& odtis2)
|
|
||||||
{
|
|
||||||
return !(odtis1 != odtis2);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline stdex::stream::basic& operator >>(_Inout_ stdex::stream::basic& stream, _Out_ stdex::md2_t& data)
|
|
||||||
{
|
|
||||||
if (!stream.ok()) _Unlikely_{
|
|
||||||
memset(&data, 0, sizeof(data));
|
|
||||||
return stream;
|
|
||||||
}
|
|
||||||
stream.read_array(&data, sizeof(data), 1);
|
|
||||||
return stream;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline stdex::stream::basic& operator <<(_Inout_ stdex::stream::basic& stream, _In_ const stdex::md2_t& data)
|
|
||||||
{
|
|
||||||
if (!stream.ok()) _Unlikely_
|
|
||||||
return stream;
|
|
||||||
stream.write_array(&data, sizeof(data), 1);
|
|
||||||
return stream;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline stdex::stream::basic& operator >>(_Inout_ stdex::stream::basic& stream, _Out_ stdex::sha_t& data)
|
|
||||||
{
|
|
||||||
if (!stream.ok()) _Unlikely_{
|
|
||||||
memset(&data, 0, sizeof(data));
|
|
||||||
return stream;
|
|
||||||
}
|
|
||||||
stream.read_array(&data, sizeof(data), 1);
|
|
||||||
return stream;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline stdex::stream::basic& operator <<(_Inout_ stdex::stream::basic& stream, _In_ const stdex::sha_t& data)
|
|
||||||
{
|
|
||||||
if (!stream.ok()) _Unlikely_
|
|
||||||
return stream;
|
|
||||||
stream.write_array(&data, sizeof(data), 1);
|
|
||||||
return stream;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline stdex::stream::basic& operator >>(_Inout_ stdex::stream::basic& stream, _Out_ stdex::sha256_t& data)
|
|
||||||
{
|
|
||||||
if (!stream.ok()) _Unlikely_{
|
|
||||||
memset(&data, 0, sizeof(data));
|
|
||||||
return stream;
|
|
||||||
}
|
|
||||||
stream.read_array(&data, sizeof(data), 1);
|
|
||||||
return stream;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline stdex::stream::basic& operator <<(_Inout_ stdex::stream::basic& stream, _In_ const stdex::sha256_t& data)
|
|
||||||
{
|
|
||||||
if (!stream.ok()) _Unlikely_
|
|
||||||
return stream;
|
|
||||||
stream.write_array(&data, sizeof(data), 1);
|
|
||||||
return stream;
|
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user