// automatically generated by the FlatBuffers compiler, do not modify
import { StructOfStructs } from '../../my-game/example/struct-of-structs.js';
export class StructOfStructsOfStructs {
    constructor() {
        this.bb = null;
        this.bb_pos = 0;
    }
    __init(i, bb) {
        this.bb_pos = i;
        this.bb = bb;
        return this;
    }
    a(obj) {
        return (obj || new StructOfStructs()).__init(this.bb_pos, this.bb);
    }
    static getFullyQualifiedName() {
        return 'MyGame.Example.StructOfStructsOfStructs';
    }
    static sizeOf() {
        return 20;
    }
    static createStructOfStructsOfStructs(builder, a_a_id, a_a_distance, a_b_a, a_b_b, a_c_id, a_c_distance) {
        builder.prep(4, 20);
        builder.prep(4, 20);
        builder.prep(4, 8);
        builder.writeInt32(a_c_distance);
        builder.writeInt32(a_c_id);
        builder.prep(2, 4);
        builder.pad(1);
        builder.writeInt8(a_b_b);
        builder.writeInt16(a_b_a);
        builder.prep(4, 8);
        builder.writeInt32(a_a_distance);
        builder.writeInt32(a_a_id);
        return builder.offset();
    }
    unpack() {
        return new StructOfStructsOfStructsT((this.a() !== null ? this.a().unpack() : null));
    }
    unpackTo(_o) {
        _o.a = (this.a() !== null ? this.a().unpack() : null);
    }
}
export class StructOfStructsOfStructsT {
    constructor(a = null) {
        this.a = a;
    }
    pack(builder) {
        return StructOfStructsOfStructs.createStructOfStructsOfStructs(builder, (this.a?.a?.id ?? 0), (this.a?.a?.distance ?? 0), (this.a?.b?.a ?? 0), (this.a?.b?.b ?? 0), (this.a?.c?.id ?? 0), (this.a?.c?.distance ?? 0));
    }
}
