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

package MyGame.Example;

import java.nio.*;
import java.lang.*;
import java.util.*;
import com.google.flatbuffers.*;

public class TestT {
  private short a;
  private byte b;

  public short getA() { return a; }

  public void setA(short a) { this.a = a; }

  public byte getB() { return b; }

  public void setB(byte b) { this.b = b; }


  public TestT() {
    this.a = 0;
    this.b = 0;
  }
}

