/src/rt/typeinfo/ti_C.d
http://github.com/AlexeyProkhin/druntime · D · 70 lines · 44 code · 10 blank · 16 comment · 4 complexity · 54ca51fb923ef79558b4e1b8f5f111b1 MD5 · raw file
- /**
- * TypeInfo support code.
- *
- * Copyright: Copyright Digital Mars 2004 - 2009.
- * License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
- * Authors: Walter Bright
- */
- /* Copyright Digital Mars 2004 - 2009.
- * 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_C;
- // Object
- class TypeInfo_C : TypeInfo
- {
- @trusted:
- const:
- //pure:
- //nothrow:
- override size_t getHash(in void* p)
- {
- Object o = *cast(Object*)p;
- return o ? o.toHash() : 0;
- }
- override bool equals(in void* p1, in void* p2)
- {
- Object o1 = *cast(Object*)p1;
- Object o2 = *cast(Object*)p2;
- return o1 == o2;
- }
- override int compare(in void* p1, in void* p2)
- {
- Object o1 = *cast(Object*)p1;
- Object o2 = *cast(Object*)p2;
- int c = 0;
- // Regard null references as always being "less than"
- if (!(o1 is o2))
- {
- if (o1)
- {
- if (!o2)
- c = 1;
- else
- c = o1.opCmp(o2);
- }
- else
- c = -1;
- }
- return c;
- }
- override @property size_t tsize() nothrow pure
- {
- return Object.sizeof;
- }
- override @property uint flags() nothrow pure
- {
- return 1;
- }
- }