voile.dataformatter

データ形式向けのバイナリ操作
struct DataWriter(Range, Endian rangeEndian = Endian.littleEndian) if (isOutputRange!(Range, const(ubyte)[]) || isOutputRange!(Range, ubyte) || isOutputRange!(Range, const(void)[]));
void put(T)(in T v)
if(is(Unqual!T == ubyte) || is(Unqual!T == char) || is(Unqual!T == byte));
void put(T)(in T v)
if(is(Unqual!T == const(ubyte)[]) || is(Unqual!T == const(byte)[]) || is(Unqual!T == const(char)[]) || is(Unqual!T == const(void)[]) || is(Unqual!T == immutable(ubyte)[]) || is(Unqual!T == immutable(byte)[]) || is(Unqual!T == string) || is(Unqual!T == immutable(void)[]) || is(Unqual!T == ubyte[]) || is(Unqual!T == byte[]) || is(Unqual!T == char[]) || is(Unqual!T == void[]));
void put(T)(in T v)
if(is(Unqual!T == ushort) || is(Unqual!T == short) || is(Unqual!T == wchar));
void put(T)(in T v)
if(is(Unqual!T == uint) || is(Unqual!T == int) || is(Unqual!T == float) || is(Unqual!T == ifloat) || is(Unqual!T == dchar));
void put(T)(T v)
if(is(Unqual!T == ulong) || is(Unqual!T == long) || is(Unqual!T == double) || is(Unqual!T == idouble));
void put(T)(in T v)
if(is(Unqual!T U == enum) && isOutputRange!(typeof(this), OriginalType!T));
void put(SrcRange)(ref SrcRange r)
if(isStaticArray!(Unqual!SrcRange));
void put(SrcRange)(SrcRange r)
if(isInputRange!(Unqual!SrcRange) && !is(Unqual!SrcRange == const(ubyte)[]) && !is(Unqual!SrcRange == const(byte)[]) && !is(Unqual!SrcRange == const(char)[]) && !is(Unqual!SrcRange == const(void)[]) && !is(Unqual!SrcRange == immutable(ubyte)[]) && !is(Unqual!SrcRange == immutable(byte)[]) && !is(Unqual!SrcRange == string) && !is(Unqual!SrcRange == immutable(void)[]) && !is(Unqual!SrcRange == ubyte[]) && !is(Unqual!SrcRange == byte[]) && !is(Unqual!SrcRange == char[]) && !is(Unqual!SrcRange == void[]) && is(typeof(() { foreach (e; r) { put(e); } } ())));
DataWriter!(ElementType!Range[], Endian.littleEndian) leWriter(Range)(ref Range r)
if(isStaticArray!Range);
DataWriter!(Range, Endian.littleEndian) leWriter(Range)(Range r)
if(isOutputRange!(Range, ubyte[]) || isOutputRange!(Range, ubyte));
DataWriter!(ElementType!Range[], Endian.bigEndian) beWriter(Range)(ref Range r)
if(isStaticArray!Range);
DataWriter!(Range, Endian.bigEndian) beWriter(Range)(Range r)
if(isOutputRange!(Range, ubyte[]) || isOutputRange!(Range, ubyte));
void pick(R, E)(R r, ref E e)
if(!isArray!E);
void pick(R, E)(ref R r, E e)
if(isDynamicArray!E);
void pick(R, E)(ref R r, ref E e)
if(isStaticArray!E);
enum auto isEntryRange(R, E);
struct DataReader(Range, Endian rangeEndian = Endian.littleEndian) if (isEntryRange!(Range, ubyte[]) || isEntryRange!(Range, ubyte) || isEntryRange!(Range, void[]));
this(Range r);
void pick(T)(ref T v)
if(is(T == ubyte) || is(T == char) || is(T == byte));
void pick(T)(T v)
if(is(T == ubyte[]) || is(T == void[]) || is(T == char[]) || is(T == byte[]));
void pick(T)(ref T v)
if(is(T == ushort) || is(T == short) || is(T == wchar));
void pick(T)(ref T v)
if(is(T == uint) || is(T == int) || is(T == float) || is(T == ifloat) || is(T == dchar));
void pick(T)(ref T v)
if(is(T == ulong) || is(T == long) || is(T == double) || is(T == idouble));
void pick(T)(ref T v)
if(is(Unqual!T U == enum) && isEntryRange!(typeof(this), OriginalType!T));
void pick(SrcRange)(ref SrcRange r)
if(isStaticArray!SrcRange);
void pick(DstRange)(DstRange r)
if(isInputRange!DstRange && !is(ElementType!DstRange == ubyte) && !is(DstRange == void[]) && !is(ElementType!DstRange == byte) && !is(DstRange == char[]) && is(typeof(() { foreach (ref e; r) { pick(e); } } ())));
EntryRange Primitive
const @property bool empty();
Range primitive
DataReader!(ElementType!Range[], Endian.littleEndian) leReader(Range)(ref Range r)
if(isStaticArray!Range);
DataReader!(Range, Endian.littleEndian) leReader(Range)(Range r)
if(isOutputRange!(Range, ubyte[]) || isOutputRange!(Range, ubyte));
DataReader!(ElementType!Range[], Endian.bigEndian) beReader(Range)(ref Range r)
if(isStaticArray!Range);
DataReader!(Range, Endian.bigEndian) beReader(Range)(Range r)
if(isOutputRange!(Range, ubyte[]) || isOutputRange!(Range, ubyte));