This repository has been archived by the owner on Oct 12, 2022. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 426
/
ti_ucent.d
68 lines (55 loc) · 1.44 KB
/
ti_ucent.d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/**
* TypeInfo support code.
*
* Copyright: Copyright Digital Mars 2004 - 2015.
* License: $(WEB www.boost.org/LICENSE_1_0.txt, Boost License 1.0).
* Authors: Walter Bright
*/
/* Copyright Digital Mars 2004 - 2015.
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE or copy at
* http://www.boost.org/LICENSE_1_0.txt)
*/
module rt.typeinfo.ti_ucent;
private import rt.util.hash;
static if (is(ucent)):
// ucent
class TypeInfo_zk : TypeInfo
{
@trusted:
const:
pure:
nothrow:
override string toString() const pure nothrow @safe { return "ucent"; }
override size_t getHash(in void* p)
{
return rt.util.hash.hashOf(p, ucent.sizeof);
}
override bool equals(in void* p1, in void* p2)
{
return *cast(ucent *)p1 == *cast(ucent *)p2;
}
override int compare(in void* p1, in void* p2)
{
if (*cast(ucent *)p1 < *cast(ucent *)p2)
return -1;
else if (*cast(ucent *)p1 > *cast(ucent *)p2)
return 1;
return 0;
}
override @property size_t tsize() nothrow pure
{
return ucent.sizeof;
}
override void swap(void *p1, void *p2)
{
ucent t;
t = *cast(ucent *)p1;
*cast(ucent *)p1 = *cast(ucent *)p2;
*cast(ucent *)p2 = t;
}
override @property size_t talign() nothrow pure
{
return ucent.alignof;
}
}