On Sunday, 26 September 2021 at 15:09:38 UTC, Paul wrote:
Is there way to write the myStruct data to the file in a single
statement...or two?
Thanks for any assistance.
Header[1] header;
void readFileHeader( ref File f )
{
f.rawRead( header );
}
Such i read raw data from .ttf file.
And will be logically if will to write:
Header[1] header;
void writeFileHeader( ref File f )
{
f.rawWrite( header );
}
Declaration rawRead/rawWrite is useful, beauty and logical:
void rawWrite(T)( in T[] buffer );
Reason for using array for return number of readed bytes:
auto readed = f.rawRead( header );
// readed.length
// readed[0]
// readed[1]
And logically and symmetrically use rawWrite() with array:
Header[1] header;
f.rawWrite( header );
You can write other implementation:
void rawWrite( T )( ref FILE f, T data )
{
//
}
Why not ?
And check the cerealed:
https://code.dlang.org/packages/cerealed
struct Foo
{
int i;
}
const foo = Foo(5);
f.rawWrite( foo.cerealize ) // is ubyte[]