// Generated by the protocol buffer compiler.  DO NOT EDIT!

package io.grpc.protobuf.nano;

@SuppressWarnings("hiding")
public interface Messages {

  public static final class Message extends
      com.google.protobuf.nano.MessageNano {

    private static volatile Message[] _emptyArray;
    public static Message[] emptyArray() {
      // Lazily initializes the empty array
      if (_emptyArray == null) {
        synchronized (
            com.google.protobuf.nano.InternalNano.LAZY_INIT_LOCK) {
          if (_emptyArray == null) {
            _emptyArray = new Message[0];
          }
        }
      }
      return _emptyArray;
    }

    // int32 i = 1;
    public int i;

    // bool b = 2;
    public boolean b;

    // string s = 3;
    public java.lang.String s;

    // bytes bs = 4;
    public byte[] bs;

    public Message() {
      clear();
    }

    public Message clear() {
      i = 0;
      b = false;
      s = "";
      bs = com.google.protobuf.nano.WireFormatNano.EMPTY_BYTES;
      cachedSize = -1;
      return this;
    }

    @Override
    public void writeTo(com.google.protobuf.nano.CodedOutputByteBufferNano output)
        throws java.io.IOException {
      if (this.i != 0) {
        output.writeInt32(1, this.i);
      }
      if (this.b != false) {
        output.writeBool(2, this.b);
      }
      if (!this.s.equals("")) {
        output.writeString(3, this.s);
      }
      if (!java.util.Arrays.equals(this.bs, com.google.protobuf.nano.WireFormatNano.EMPTY_BYTES)) {
        output.writeBytes(4, this.bs);
      }
      super.writeTo(output);
    }

    @Override
    protected int computeSerializedSize() {
      int size = super.computeSerializedSize();
      if (this.i != 0) {
        size += com.google.protobuf.nano.CodedOutputByteBufferNano
            .computeInt32Size(1, this.i);
      }
      if (this.b != false) {
        size += com.google.protobuf.nano.CodedOutputByteBufferNano
            .computeBoolSize(2, this.b);
      }
      if (!this.s.equals("")) {
        size += com.google.protobuf.nano.CodedOutputByteBufferNano
            .computeStringSize(3, this.s);
      }
      if (!java.util.Arrays.equals(this.bs, com.google.protobuf.nano.WireFormatNano.EMPTY_BYTES)) {
        size += com.google.protobuf.nano.CodedOutputByteBufferNano
            .computeBytesSize(4, this.bs);
      }
      return size;
    }

    @Override
    public Message mergeFrom(
            com.google.protobuf.nano.CodedInputByteBufferNano input)
        throws java.io.IOException {
      while (true) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            return this;
          default: {
            if (!com.google.protobuf.nano.WireFormatNano.parseUnknownField(input, tag)) {
              return this;
            }
            break;
          }
          case 8: {
            this.i = input.readInt32();
            break;
          }
          case 16: {
            this.b = input.readBool();
            break;
          }
          case 26: {
            this.s = input.readString();
            break;
          }
          case 34: {
            this.bs = input.readBytes();
            break;
          }
        }
      }
    }

    public static Message parseFrom(byte[] data)
        throws com.google.protobuf.nano.InvalidProtocolBufferNanoException {
      return com.google.protobuf.nano.MessageNano.mergeFrom(new Message(), data);
    }

    public static Message parseFrom(
            com.google.protobuf.nano.CodedInputByteBufferNano input)
        throws java.io.IOException {
      return new Message().mergeFrom(input);
    }
  }
}
