something I may have actually used in real code writing a low-level networking library:

struct Packet
{
        immutable etherType = 0x0800; // IPv4 by default;
        
        // ...
        
        this(bool IPv6)
        {
                if (!IPv6)
                        return; // fine with default, same as Packet.init
                else
                {
                        etherType = 0x86DD;
                        // ...
                }
        }
}

void main()
{
        auto buffer = cast(ubyte[])(Packet(true));
}

Reply via email to