1 module rfc4648; 2 3 public import base32; 4 public import std.base64; 5 6 version (unittest) 7 { 8 void safelog(string msg) @trusted @nogc nothrow 9 { 10 import core.stdc.stdio : printf; 11 12 printf("%.*s\n", msg.length, &msg[0]); 13 } 14 15 void testFunctionality()() 16 { 17 ubyte[6] data = [0xde, 0xad, 0xbe, 0xef, 0x01, 0x23]; 18 assert(Base32.encode(data[]) == "32W353YBEM======"); 19 20 assert(Base32.decode("32W353YBEM======") == [ 21 0xde, 0xad, 0xbe, 0xef, 0x01, 0x23 22 ]); 23 } 24 25 unittest 26 { 27 testFunctionality(); 28 safelog("package works"); 29 } 30 31 @safe unittest 32 { 33 static if (__traits(compiles, testFunctionality())) 34 { 35 pragma(msg, "package is @safe"); 36 } 37 else 38 { 39 pragma(msg, "package is not @safe"); 40 } 41 } 42 43 @nogc unittest 44 { 45 static if (__traits(compiles, testFunctionality())) 46 { 47 pragma(msg, "package is @nogc"); 48 } 49 else 50 { 51 pragma(msg, "package is not @nogc"); 52 } 53 } 54 55 nothrow unittest 56 { 57 static if (__traits(compiles, testFunctionality())) 58 { 59 pragma(msg, "package is nothrow"); 60 } 61 else 62 { 63 pragma(msg, "package is not nothrow"); 64 } 65 } 66 }