// automatically generated by the FlatBuffers compiler, do not modify

import * as flatbuffers from 'flatbuffers';
/**
 * @enum {number}
 */
export namespace optional_scalars{
export enum OptionalByte{
  None= 0,
  One= 1,
  Two= 2
};
}

/**
 * @constructor
 */
export namespace optional_scalars{
export class ScalarStuff {
  bb: flatbuffers.ByteBuffer|null = null;

  bb_pos:number = 0;
/**
 * @param number i
 * @param flatbuffers.ByteBuffer bb
 * @returns ScalarStuff
 */
__init(i:number, bb:flatbuffers.ByteBuffer):ScalarStuff {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param flatbuffers.ByteBuffer bb
 * @param ScalarStuff= obj
 * @returns ScalarStuff
 */
static getRootAsScalarStuff(bb:flatbuffers.ByteBuffer, obj?:ScalarStuff):ScalarStuff {
  return (obj || new ScalarStuff()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param flatbuffers.ByteBuffer bb
 * @param ScalarStuff= obj
 * @returns ScalarStuff
 */
static getSizePrefixedRootAsScalarStuff(bb:flatbuffers.ByteBuffer, obj?:ScalarStuff):ScalarStuff {
  bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);
  return (obj || new ScalarStuff()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param flatbuffers.ByteBuffer bb
 * @returns boolean
 */
static bufferHasIdentifier(bb:flatbuffers.ByteBuffer):boolean {
  return bb.__has_identifier('NULL');
};

/**
 * @returns number
 */
justI8():number {
  var offset = this.bb!.__offset(this.bb_pos, 4);
  return offset ? this.bb!.readInt8(this.bb_pos + offset) : 0;
};

/**
 * @returns number|null
 */
maybeI8():number|null {
  var offset = this.bb!.__offset(this.bb_pos, 6);
  return offset ? this.bb!.readInt8(this.bb_pos + offset) : null;
};

/**
 * @returns number
 */
defaultI8():number {
  var offset = this.bb!.__offset(this.bb_pos, 8);
  return offset ? this.bb!.readInt8(this.bb_pos + offset) : 42;
};

/**
 * @returns number
 */
justU8():number {
  var offset = this.bb!.__offset(this.bb_pos, 10);
  return offset ? this.bb!.readUint8(this.bb_pos + offset) : 0;
};

/**
 * @returns number|null
 */
maybeU8():number|null {
  var offset = this.bb!.__offset(this.bb_pos, 12);
  return offset ? this.bb!.readUint8(this.bb_pos + offset) : null;
};

/**
 * @returns number
 */
defaultU8():number {
  var offset = this.bb!.__offset(this.bb_pos, 14);
  return offset ? this.bb!.readUint8(this.bb_pos + offset) : 42;
};

/**
 * @returns number
 */
justI16():number {
  var offset = this.bb!.__offset(this.bb_pos, 16);
  return offset ? this.bb!.readInt16(this.bb_pos + offset) : 0;
};

/**
 * @returns number|null
 */
maybeI16():number|null {
  var offset = this.bb!.__offset(this.bb_pos, 18);
  return offset ? this.bb!.readInt16(this.bb_pos + offset) : null;
};

/**
 * @returns number
 */
defaultI16():number {
  var offset = this.bb!.__offset(this.bb_pos, 20);
  return offset ? this.bb!.readInt16(this.bb_pos + offset) : 42;
};

/**
 * @returns number
 */
justU16():number {
  var offset = this.bb!.__offset(this.bb_pos, 22);
  return offset ? this.bb!.readUint16(this.bb_pos + offset) : 0;
};

/**
 * @returns number|null
 */
maybeU16():number|null {
  var offset = this.bb!.__offset(this.bb_pos, 24);
  return offset ? this.bb!.readUint16(this.bb_pos + offset) : null;
};

/**
 * @returns number
 */
defaultU16():number {
  var offset = this.bb!.__offset(this.bb_pos, 26);
  return offset ? this.bb!.readUint16(this.bb_pos + offset) : 42;
};

/**
 * @returns number
 */
justI32():number {
  var offset = this.bb!.__offset(this.bb_pos, 28);
  return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @returns number|null
 */
maybeI32():number|null {
  var offset = this.bb!.__offset(this.bb_pos, 30);
  return offset ? this.bb!.readInt32(this.bb_pos + offset) : null;
};

/**
 * @returns number
 */
defaultI32():number {
  var offset = this.bb!.__offset(this.bb_pos, 32);
  return offset ? this.bb!.readInt32(this.bb_pos + offset) : 42;
};

/**
 * @returns number
 */
justU32():number {
  var offset = this.bb!.__offset(this.bb_pos, 34);
  return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0;
};

/**
 * @returns number|null
 */
maybeU32():number|null {
  var offset = this.bb!.__offset(this.bb_pos, 36);
  return offset ? this.bb!.readUint32(this.bb_pos + offset) : null;
};

/**
 * @returns number
 */
defaultU32():number {
  var offset = this.bb!.__offset(this.bb_pos, 38);
  return offset ? this.bb!.readUint32(this.bb_pos + offset) : 42;
};

/**
 * @returns flatbuffers.Long
 */
justI64():flatbuffers.Long {
  var offset = this.bb!.__offset(this.bb_pos, 40);
  return offset ? this.bb!.readInt64(this.bb_pos + offset) : this.bb!.createLong(0, 0);
};

/**
 * @returns flatbuffers.Long|null
 */
maybeI64():flatbuffers.Long|null {
  var offset = this.bb!.__offset(this.bb_pos, 42);
  return offset ? this.bb!.readInt64(this.bb_pos + offset) : null;
};

/**
 * @returns flatbuffers.Long
 */
defaultI64():flatbuffers.Long {
  var offset = this.bb!.__offset(this.bb_pos, 44);
  return offset ? this.bb!.readInt64(this.bb_pos + offset) : this.bb!.createLong(42, 0);
};

/**
 * @returns flatbuffers.Long
 */
justU64():flatbuffers.Long {
  var offset = this.bb!.__offset(this.bb_pos, 46);
  return offset ? this.bb!.readUint64(this.bb_pos + offset) : this.bb!.createLong(0, 0);
};

/**
 * @returns flatbuffers.Long|null
 */
maybeU64():flatbuffers.Long|null {
  var offset = this.bb!.__offset(this.bb_pos, 48);
  return offset ? this.bb!.readUint64(this.bb_pos + offset) : null;
};

/**
 * @returns flatbuffers.Long
 */
defaultU64():flatbuffers.Long {
  var offset = this.bb!.__offset(this.bb_pos, 50);
  return offset ? this.bb!.readUint64(this.bb_pos + offset) : this.bb!.createLong(42, 0);
};

/**
 * @returns number
 */
justF32():number {
  var offset = this.bb!.__offset(this.bb_pos, 52);
  return offset ? this.bb!.readFloat32(this.bb_pos + offset) : 0.0;
};

/**
 * @returns number|null
 */
maybeF32():number|null {
  var offset = this.bb!.__offset(this.bb_pos, 54);
  return offset ? this.bb!.readFloat32(this.bb_pos + offset) : null;
};

/**
 * @returns number
 */
defaultF32():number {
  var offset = this.bb!.__offset(this.bb_pos, 56);
  return offset ? this.bb!.readFloat32(this.bb_pos + offset) : 42.0;
};

/**
 * @returns number
 */
justF64():number {
  var offset = this.bb!.__offset(this.bb_pos, 58);
  return offset ? this.bb!.readFloat64(this.bb_pos + offset) : 0.0;
};

/**
 * @returns number|null
 */
maybeF64():number|null {
  var offset = this.bb!.__offset(this.bb_pos, 60);
  return offset ? this.bb!.readFloat64(this.bb_pos + offset) : null;
};

/**
 * @returns number
 */
defaultF64():number {
  var offset = this.bb!.__offset(this.bb_pos, 62);
  return offset ? this.bb!.readFloat64(this.bb_pos + offset) : 42.0;
};

/**
 * @returns boolean
 */
justBool():boolean {
  var offset = this.bb!.__offset(this.bb_pos, 64);
  return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;
};

/**
 * @returns boolean|null
 */
maybeBool():boolean|null {
  var offset = this.bb!.__offset(this.bb_pos, 66);
  return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : null;
};

/**
 * @returns boolean
 */
defaultBool():boolean {
  var offset = this.bb!.__offset(this.bb_pos, 68);
  return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : true;
};

/**
 * @returns optional_scalars.OptionalByte
 */
justEnum():optional_scalars.OptionalByte {
  var offset = this.bb!.__offset(this.bb_pos, 70);
  return offset ? /**  */ (this.bb!.readInt8(this.bb_pos + offset)) : optional_scalars.OptionalByte.None;
};

/**
 * @returns optional_scalars.OptionalByte|null
 */
maybeEnum():optional_scalars.OptionalByte|null {
  var offset = this.bb!.__offset(this.bb_pos, 72);
  return offset ? /**  */ (this.bb!.readInt8(this.bb_pos + offset)) : null;
};

/**
 * @returns optional_scalars.OptionalByte
 */
defaultEnum():optional_scalars.OptionalByte {
  var offset = this.bb!.__offset(this.bb_pos, 74);
  return offset ? /**  */ (this.bb!.readInt8(this.bb_pos + offset)) : optional_scalars.OptionalByte.One;
};

/**
 * @param flatbuffers.Builder builder
 */
static startScalarStuff(builder:flatbuffers.Builder) {
  builder.startObject(36);
};

/**
 * @param flatbuffers.Builder builder
 * @param number justI8
 */
static addJustI8(builder:flatbuffers.Builder, justI8:number) {
  builder.addFieldInt8(0, justI8, 0);
};

/**
 * @param flatbuffers.Builder builder
 * @param number maybeI8
 */
static addMaybeI8(builder:flatbuffers.Builder, maybeI8:number) {
  builder.addFieldInt8(1, maybeI8, 0);
};

/**
 * @param flatbuffers.Builder builder
 * @param number defaultI8
 */
static addDefaultI8(builder:flatbuffers.Builder, defaultI8:number) {
  builder.addFieldInt8(2, defaultI8, 42);
};

/**
 * @param flatbuffers.Builder builder
 * @param number justU8
 */
static addJustU8(builder:flatbuffers.Builder, justU8:number) {
  builder.addFieldInt8(3, justU8, 0);
};

/**
 * @param flatbuffers.Builder builder
 * @param number maybeU8
 */
static addMaybeU8(builder:flatbuffers.Builder, maybeU8:number) {
  builder.addFieldInt8(4, maybeU8, 0);
};

/**
 * @param flatbuffers.Builder builder
 * @param number defaultU8
 */
static addDefaultU8(builder:flatbuffers.Builder, defaultU8:number) {
  builder.addFieldInt8(5, defaultU8, 42);
};

/**
 * @param flatbuffers.Builder builder
 * @param number justI16
 */
static addJustI16(builder:flatbuffers.Builder, justI16:number) {
  builder.addFieldInt16(6, justI16, 0);
};

/**
 * @param flatbuffers.Builder builder
 * @param number maybeI16
 */
static addMaybeI16(builder:flatbuffers.Builder, maybeI16:number) {
  builder.addFieldInt16(7, maybeI16, 0);
};

/**
 * @param flatbuffers.Builder builder
 * @param number defaultI16
 */
static addDefaultI16(builder:flatbuffers.Builder, defaultI16:number) {
  builder.addFieldInt16(8, defaultI16, 42);
};

/**
 * @param flatbuffers.Builder builder
 * @param number justU16
 */
static addJustU16(builder:flatbuffers.Builder, justU16:number) {
  builder.addFieldInt16(9, justU16, 0);
};

/**
 * @param flatbuffers.Builder builder
 * @param number maybeU16
 */
static addMaybeU16(builder:flatbuffers.Builder, maybeU16:number) {
  builder.addFieldInt16(10, maybeU16, 0);
};

/**
 * @param flatbuffers.Builder builder
 * @param number defaultU16
 */
static addDefaultU16(builder:flatbuffers.Builder, defaultU16:number) {
  builder.addFieldInt16(11, defaultU16, 42);
};

/**
 * @param flatbuffers.Builder builder
 * @param number justI32
 */
static addJustI32(builder:flatbuffers.Builder, justI32:number) {
  builder.addFieldInt32(12, justI32, 0);
};

/**
 * @param flatbuffers.Builder builder
 * @param number maybeI32
 */
static addMaybeI32(builder:flatbuffers.Builder, maybeI32:number) {
  builder.addFieldInt32(13, maybeI32, 0);
};

/**
 * @param flatbuffers.Builder builder
 * @param number defaultI32
 */
static addDefaultI32(builder:flatbuffers.Builder, defaultI32:number) {
  builder.addFieldInt32(14, defaultI32, 42);
};

/**
 * @param flatbuffers.Builder builder
 * @param number justU32
 */
static addJustU32(builder:flatbuffers.Builder, justU32:number) {
  builder.addFieldInt32(15, justU32, 0);
};

/**
 * @param flatbuffers.Builder builder
 * @param number maybeU32
 */
static addMaybeU32(builder:flatbuffers.Builder, maybeU32:number) {
  builder.addFieldInt32(16, maybeU32, 0);
};

/**
 * @param flatbuffers.Builder builder
 * @param number defaultU32
 */
static addDefaultU32(builder:flatbuffers.Builder, defaultU32:number) {
  builder.addFieldInt32(17, defaultU32, 42);
};

/**
 * @param flatbuffers.Builder builder
 * @param flatbuffers.Long justI64
 */
static addJustI64(builder:flatbuffers.Builder, justI64:flatbuffers.Long) {
  builder.addFieldInt64(18, justI64, builder.createLong(0, 0));
};

/**
 * @param flatbuffers.Builder builder
 * @param flatbuffers.Long maybeI64
 */
static addMaybeI64(builder:flatbuffers.Builder, maybeI64:flatbuffers.Long) {
  builder.addFieldInt64(19, maybeI64, builder.createLong(0, 0));
};

/**
 * @param flatbuffers.Builder builder
 * @param flatbuffers.Long defaultI64
 */
static addDefaultI64(builder:flatbuffers.Builder, defaultI64:flatbuffers.Long) {
  builder.addFieldInt64(20, defaultI64, builder.createLong(42, 0));
};

/**
 * @param flatbuffers.Builder builder
 * @param flatbuffers.Long justU64
 */
static addJustU64(builder:flatbuffers.Builder, justU64:flatbuffers.Long) {
  builder.addFieldInt64(21, justU64, builder.createLong(0, 0));
};

/**
 * @param flatbuffers.Builder builder
 * @param flatbuffers.Long maybeU64
 */
static addMaybeU64(builder:flatbuffers.Builder, maybeU64:flatbuffers.Long) {
  builder.addFieldInt64(22, maybeU64, builder.createLong(0, 0));
};

/**
 * @param flatbuffers.Builder builder
 * @param flatbuffers.Long defaultU64
 */
static addDefaultU64(builder:flatbuffers.Builder, defaultU64:flatbuffers.Long) {
  builder.addFieldInt64(23, defaultU64, builder.createLong(42, 0));
};

/**
 * @param flatbuffers.Builder builder
 * @param number justF32
 */
static addJustF32(builder:flatbuffers.Builder, justF32:number) {
  builder.addFieldFloat32(24, justF32, 0.0);
};

/**
 * @param flatbuffers.Builder builder
 * @param number maybeF32
 */
static addMaybeF32(builder:flatbuffers.Builder, maybeF32:number) {
  builder.addFieldFloat32(25, maybeF32, 0);
};

/**
 * @param flatbuffers.Builder builder
 * @param number defaultF32
 */
static addDefaultF32(builder:flatbuffers.Builder, defaultF32:number) {
  builder.addFieldFloat32(26, defaultF32, 42.0);
};

/**
 * @param flatbuffers.Builder builder
 * @param number justF64
 */
static addJustF64(builder:flatbuffers.Builder, justF64:number) {
  builder.addFieldFloat64(27, justF64, 0.0);
};

/**
 * @param flatbuffers.Builder builder
 * @param number maybeF64
 */
static addMaybeF64(builder:flatbuffers.Builder, maybeF64:number) {
  builder.addFieldFloat64(28, maybeF64, 0);
};

/**
 * @param flatbuffers.Builder builder
 * @param number defaultF64
 */
static addDefaultF64(builder:flatbuffers.Builder, defaultF64:number) {
  builder.addFieldFloat64(29, defaultF64, 42.0);
};

/**
 * @param flatbuffers.Builder builder
 * @param boolean justBool
 */
static addJustBool(builder:flatbuffers.Builder, justBool:boolean) {
  builder.addFieldInt8(30, +justBool, +false);
};

/**
 * @param flatbuffers.Builder builder
 * @param boolean maybeBool
 */
static addMaybeBool(builder:flatbuffers.Builder, maybeBool:boolean) {
  builder.addFieldInt8(31, +maybeBool, 0);
};

/**
 * @param flatbuffers.Builder builder
 * @param boolean defaultBool
 */
static addDefaultBool(builder:flatbuffers.Builder, defaultBool:boolean) {
  builder.addFieldInt8(32, +defaultBool, +true);
};

/**
 * @param flatbuffers.Builder builder
 * @param optional_scalars.OptionalByte justEnum
 */
static addJustEnum(builder:flatbuffers.Builder, justEnum:optional_scalars.OptionalByte) {
  builder.addFieldInt8(33, justEnum, optional_scalars.OptionalByte.None);
};

/**
 * @param flatbuffers.Builder builder
 * @param optional_scalars.OptionalByte maybeEnum
 */
static addMaybeEnum(builder:flatbuffers.Builder, maybeEnum:optional_scalars.OptionalByte) {
  builder.addFieldInt8(34, maybeEnum, 0);
};

/**
 * @param flatbuffers.Builder builder
 * @param optional_scalars.OptionalByte defaultEnum
 */
static addDefaultEnum(builder:flatbuffers.Builder, defaultEnum:optional_scalars.OptionalByte) {
  builder.addFieldInt8(35, defaultEnum, optional_scalars.OptionalByte.One);
};

/**
 * @param flatbuffers.Builder builder
 * @returns flatbuffers.Offset
 */
static endScalarStuff(builder:flatbuffers.Builder):flatbuffers.Offset {
  var offset = builder.endObject();
  return offset;
};

/**
 * @param flatbuffers.Builder builder
 * @param flatbuffers.Offset offset
 */
static finishScalarStuffBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) {
  builder.finish(offset, 'NULL');
};

/**
 * @param flatbuffers.Builder builder
 * @param flatbuffers.Offset offset
 */
static finishSizePrefixedScalarStuffBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) {
  builder.finish(offset, 'NULL', true);
};

static createScalarStuff(builder:flatbuffers.Builder, justI8:number, maybeI8:number|null, defaultI8:number, justU8:number, maybeU8:number|null, defaultU8:number, justI16:number, maybeI16:number|null, defaultI16:number, justU16:number, maybeU16:number|null, defaultU16:number, justI32:number, maybeI32:number|null, defaultI32:number, justU32:number, maybeU32:number|null, defaultU32:number, justI64:flatbuffers.Long, maybeI64:flatbuffers.Long|null, defaultI64:flatbuffers.Long, justU64:flatbuffers.Long, maybeU64:flatbuffers.Long|null, defaultU64:flatbuffers.Long, justF32:number, maybeF32:number|null, defaultF32:number, justF64:number, maybeF64:number|null, defaultF64:number, justBool:boolean, maybeBool:boolean|null, defaultBool:boolean, justEnum:optional_scalars.OptionalByte, maybeEnum:optional_scalars.OptionalByte|null, defaultEnum:optional_scalars.OptionalByte):flatbuffers.Offset {
  ScalarStuff.startScalarStuff(builder);
  ScalarStuff.addJustI8(builder, justI8);
  if (maybeI8 !== null)
    ScalarStuff.addMaybeI8(builder, maybeI8);
  ScalarStuff.addDefaultI8(builder, defaultI8);
  ScalarStuff.addJustU8(builder, justU8);
  if (maybeU8 !== null)
    ScalarStuff.addMaybeU8(builder, maybeU8);
  ScalarStuff.addDefaultU8(builder, defaultU8);
  ScalarStuff.addJustI16(builder, justI16);
  if (maybeI16 !== null)
    ScalarStuff.addMaybeI16(builder, maybeI16);
  ScalarStuff.addDefaultI16(builder, defaultI16);
  ScalarStuff.addJustU16(builder, justU16);
  if (maybeU16 !== null)
    ScalarStuff.addMaybeU16(builder, maybeU16);
  ScalarStuff.addDefaultU16(builder, defaultU16);
  ScalarStuff.addJustI32(builder, justI32);
  if (maybeI32 !== null)
    ScalarStuff.addMaybeI32(builder, maybeI32);
  ScalarStuff.addDefaultI32(builder, defaultI32);
  ScalarStuff.addJustU32(builder, justU32);
  if (maybeU32 !== null)
    ScalarStuff.addMaybeU32(builder, maybeU32);
  ScalarStuff.addDefaultU32(builder, defaultU32);
  ScalarStuff.addJustI64(builder, justI64);
  if (maybeI64 !== null)
    ScalarStuff.addMaybeI64(builder, maybeI64);
  ScalarStuff.addDefaultI64(builder, defaultI64);
  ScalarStuff.addJustU64(builder, justU64);
  if (maybeU64 !== null)
    ScalarStuff.addMaybeU64(builder, maybeU64);
  ScalarStuff.addDefaultU64(builder, defaultU64);
  ScalarStuff.addJustF32(builder, justF32);
  if (maybeF32 !== null)
    ScalarStuff.addMaybeF32(builder, maybeF32);
  ScalarStuff.addDefaultF32(builder, defaultF32);
  ScalarStuff.addJustF64(builder, justF64);
  if (maybeF64 !== null)
    ScalarStuff.addMaybeF64(builder, maybeF64);
  ScalarStuff.addDefaultF64(builder, defaultF64);
  ScalarStuff.addJustBool(builder, justBool);
  if (maybeBool !== null)
    ScalarStuff.addMaybeBool(builder, maybeBool);
  ScalarStuff.addDefaultBool(builder, defaultBool);
  ScalarStuff.addJustEnum(builder, justEnum);
  if (maybeEnum !== null)
    ScalarStuff.addMaybeEnum(builder, maybeEnum);
  ScalarStuff.addDefaultEnum(builder, defaultEnum);
  return ScalarStuff.endScalarStuff(builder);
}
}
}
