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[]

Reply via email to