Show
Ignore:
Timestamp:
03/01/08 19:32:14 (4 years ago)
Author:
h3r3tic
Message:

ported Enki to Tango; bootstraps, no other tests done yet

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/enki/types.d

    r277 r289  
    2525module enki.types; 
    2626 
    27 private import std.string; 
     27/+private import std.string; 
    2828private import std.utf; 
    29 private import std.conv; 
     29private import std.conv;+/ 
     30import tango.text.Util; 
     31import tango.text.Unicode; 
     32import tango.util.Convert; 
     33static import tango.text.convert.Utf; 
    3034 
    3135version(EnkiUTF32){ 
    3236    alias dchar[] String; 
    3337    alias dchar Char; 
    34     alias toUTF32 transcodeToString; 
    35     alias toUTF8 transcodeToUTF8; 
     38    alias to!(dchar[]) transcodeToString; 
     39    alias to!(char[]) transcodeToUTF8; 
    3640} 
    3741else version(EnkiUTF16){ 
    3842    alias wchar[] String; 
    3943    alias wchar Char; 
    40     alias toUTF16 transcodeToString; 
    41     alias toUTF8 transcodeToUTF8; 
     44    alias to!(wchar[]) transcodeToString; 
     45    alias to!(char[]) transcodeToUTF8; 
    4246} 
    4347else{ 
    4448    alias char[] String; 
    4549    alias char Char; 
    46     alias toUTF8 transcodeToString; 
     50    alias to!(char[]) transcodeToString; 
    4751    char[] transcodeToUTF8(char[] value){ return value; } 
    4852} 
     53 
     54alias to!(char[]) toString; 
     55 
    4956 
    5057// implicitly converable 
     
    7279                } 
    7380                else{ 
    74                     return transcodeToString(std.string.toString(value)); 
     81                    return transcodeToString(to!(char[])(value)); 
    7582                } 
    7683            } 
     
    8390    U convert(V value){ 
    8491        static if(is(U == int)){ 
    85             return std.conv.toInt(value); 
    86         } 
    87         else static if(is(U == int)){ 
    88             return std.conv.toUint(value); 
     92            return to!(U)(value); 
     93        } 
     94        else static if(is(U == uint)){ 
     95            return to!(U)(value); 
    8996        }        
    9097        else static if(is(U == long)){ 
    91             return std.conv.toLong(value); 
     98            return to!(U)(value); 
    9299        }        
    93100        else static if(is(U == ulong)){ 
    94             return std.conv.toUlong(value); 
     101            return to!(U)(value); 
    95102        }        
    96103        else static if(is(U == short)){ 
    97             return std.conv.toShort(value); 
     104            return to!(U)(value); 
    98105        }        
    99106        else static if(is(U == ushort)){ 
    100             return std.conv.toUshort(value); 
     107            return to!(U)(value); 
    101108        }        
    102109        else static if(is(U == byte)){ 
    103             return std.conv.toByte(value); 
     110            return to!(U)(value); 
    104111        }        
    105112        else static if(is(U == ubyte)){ 
    106             return std.conv.toUbyte(value); 
     113            return to!(U)(value); 
    107114        }    
    108115        else static if(is(U == float)){ 
    109             return std.conv.toFloat(value); 
     116            return to!(U)(value); 
    110117        } 
    111118        else static if(is(U == double)){ 
    112             return std.conv.toDouble(value); 
     119            return to!(U)(value); 
    113120        } 
    114121        else static if(is(U == real)){ 
    115             return std.conv.toReal(value); 
     122            return to!(U)(value); 
    116123        } 
    117124        else static if(is(U == bool)){ 
     
    194201     
    195202    alias T Type; 
    196     alias Result!(T) ThisType; 
     203    alias typeof(*this) ThisType; 
    197204     
    198205    public static ThisType opCall(T result){