ti_ucent.d revision 1.1.1.1
1/** 2 * TypeInfo support code. 3 * 4 * Copyright: Copyright Digital Mars 2004 - 2015. 5 * License: $(WEB www.boost.org/LICENSE_1_0.txt, Boost License 1.0). 6 * Authors: Walter Bright 7 */ 8 9/* Copyright Digital Mars 2004 - 2015. 10 * Distributed under the Boost Software License, Version 1.0. 11 * (See accompanying file LICENSE or copy at 12 * http://www.boost.org/LICENSE_1_0.txt) 13 */ 14module rt.typeinfo.ti_ucent; 15 16static if (is(ucent)): 17 18// ucent 19 20class TypeInfo_zk : TypeInfo 21{ 22 @trusted: 23 const: 24 pure: 25 nothrow: 26 27 override string toString() const pure nothrow @safe { return "ucent"; } 28 29 override size_t getHash(scope const void* p) 30 { 31 return hashOf(*cast(const ucent*) p); 32 } 33 34 override bool equals(in void* p1, in void* p2) 35 { 36 return *cast(ucent *)p1 == *cast(ucent *)p2; 37 } 38 39 override int compare(in void* p1, in void* p2) 40 { 41 if (*cast(ucent *)p1 < *cast(ucent *)p2) 42 return -1; 43 else if (*cast(ucent *)p1 > *cast(ucent *)p2) 44 return 1; 45 return 0; 46 } 47 48 override @property size_t tsize() nothrow pure 49 { 50 return ucent.sizeof; 51 } 52 53 override const(void)[] initializer() const @trusted 54 { 55 return (cast(void *)null)[0 .. ucent.sizeof]; 56 } 57 58 override void swap(void *p1, void *p2) 59 { 60 ucent t; 61 62 t = *cast(ucent *)p1; 63 *cast(ucent *)p1 = *cast(ucent *)p2; 64 *cast(ucent *)p2 = t; 65 } 66 67 override @property size_t talign() nothrow pure 68 { 69 return ucent.alignof; 70 } 71} 72