構造体コンストラクタ

構造体を初期化するために各メンバーにそれぞれ代入する代わりに構造体コンストラクタを使用することができます。特に const は各メンバーに代入することができないためコンストラクタによる初期化が必要です。

..default 指定子は未指定のメンバーのためのデフォルト値を指定することができます。

module ModuleA {
    struct Param {
        a: bit<10>,
        b: bit<10>,
    }

    const p: Param = Param'{
        a: 10,
        b: 10,
    };

    const q: Param = Param'{
        a: 1,
        ..default(0) // すなわち `b: 0`
    };
}