content: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: Satchel.proto
  
  package cafe.adriel.satchel.serializer.protobuf.lite.proto;
  
  public final class SatchelProto {
    private SatchelProto() {}
    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistryLite registry) {
    }
    public interface SatchelOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Satchel)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>map&lt;string, .Value&gt; storage = 1;</code>
       */
      int getStorageCount();
      /**
       * <code>map&lt;string, .Value&gt; storage = 1;</code>
       */
      boolean containsStorage(
              String key);
      /**
       * Use {@link #getStorageMap()} instead.
       */
      @Deprecated
      java.util.Map<String, Value>
      getStorage();
      /**
       * <code>map&lt;string, .Value&gt; storage = 1;</code>
       */
      java.util.Map<String, Value>
      getStorageMap();
      /**
       * <code>map&lt;string, .Value&gt; storage = 1;</code>
       */
  
      Value getStorageOrDefault(
              String key,
              Value defaultValue);
      /**
       * <code>map&lt;string, .Value&gt; storage = 1;</code>
       */
  
      Value getStorageOrThrow(
              String key);
    }
    /**
     * Protobuf type {@code Satchel}
     */
    public  static final class Satchel extends
        com.google.protobuf.GeneratedMessageLite<
            Satchel, Satchel.Builder> implements
        // @@protoc_insertion_point(message_implements:Satchel)
        SatchelOrBuilder {
      private Satchel() {
      }
      public static final int STORAGE_FIELD_NUMBER = 1;
      private static final class StorageDefaultEntryHolder {
        static final com.google.protobuf.MapEntryLite<
            String, Value> defaultEntry =
                com.google.protobuf.MapEntryLite
                .<String, Value>newDefaultInstance(
                    com.google.protobuf.WireFormat.FieldType.STRING,
                    "",
                    com.google.protobuf.WireFormat.FieldType.MESSAGE,
                    Value.getDefaultInstance());
      }
      private com.google.protobuf.MapFieldLite<
          String, Value> storage_ =
              com.google.protobuf.MapFieldLite.emptyMapField();
      private com.google.protobuf.MapFieldLite<String, Value>
      internalGetStorage() {
        return storage_;
      }
      private com.google.protobuf.MapFieldLite<String, Value>
      internalGetMutableStorage() {
        if (!storage_.isMutable()) {
          storage_ = storage_.mutableCopy();
        }
        return storage_;
      }
      @Override
  
      public int getStorageCount() {
        return internalGetStorage().size();
      }
      /**
       * <code>map&lt;string, .Value&gt; storage = 1;</code>
       */
      @Override
  
      public boolean containsStorage(
          String key) {
        key.getClass();
        return internalGetStorage().containsKey(key);
      }
      /**
       * Use {@link #getStorageMap()} instead.
       */
      @Override
      @Deprecated
      public java.util.Map<String, Value> getStorage() {
        return getStorageMap();
      }
      /**
       * <code>map&lt;string, .Value&gt; storage = 1;</code>
       */
      @Override
  
      public java.util.Map<String, Value> getStorageMap() {
        return java.util.Collections.unmodifiableMap(
            internalGetStorage());
      }
      /**
       * <code>map&lt;string, .Value&gt; storage = 1;</code>
       */
      @Override
  
      public Value getStorageOrDefault(
          String key,
          Value defaultValue) {
        key.getClass();
        java.util.Map<String, Value> map =
            internalGetStorage();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;string, .Value&gt; storage = 1;</code>
       */
      @Override
  
      public Value getStorageOrThrow(
          String key) {
        key.getClass();
        java.util.Map<String, Value> map =
            internalGetStorage();
        if (!map.containsKey(key)) {
          throw new IllegalArgumentException();
        }
        return map.get(key);
      }
      /**
       * <code>map&lt;string, .Value&gt; storage = 1;</code>
       */
      private java.util.Map<String, Value>
      getMutableStorageMap() {
        return internalGetMutableStorage();
      }
  
      public static Satchel parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static Satchel parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static Satchel parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static Satchel parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static Satchel parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static Satchel parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static Satchel parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static Satchel parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static Satchel parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static Satchel parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static Satchel parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static Satchel parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
  
      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(Satchel prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * Protobuf type {@code Satchel}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            Satchel, Builder> implements
          // @@protoc_insertion_point(builder_implements:Satchel)
          SatchelOrBuilder {
        // Construct using cafe.adriel.satchel.serializer.protobuf.proto.SatchelProto.Satchel.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        @Override
  
        public int getStorageCount() {
          return instance.getStorageMap().size();
        }
        /**
         * <code>map&lt;string, .Value&gt; storage = 1;</code>
         */
        @Override
  
        public boolean containsStorage(
            String key) {
          key.getClass();
          return instance.getStorageMap().containsKey(key);
        }
  
        public Builder clearStorage() {
          copyOnWrite();
          instance.getMutableStorageMap().clear();
          return this;
        }
        /**
         * <code>map&lt;string, .Value&gt; storage = 1;</code>
         */
  
        public Builder removeStorage(
            String key) {
          key.getClass();
          copyOnWrite();
          instance.getMutableStorageMap().remove(key);
          return this;
        }
        /**
         * Use {@link #getStorageMap()} instead.
         */
        @Override
        @Deprecated
        public java.util.Map<String, Value> getStorage() {
          return getStorageMap();
        }
        /**
         * <code>map&lt;string, .Value&gt; storage = 1;</code>
         */
        @Override
        public java.util.Map<String, Value> getStorageMap() {
          return java.util.Collections.unmodifiableMap(
              instance.getStorageMap());
        }
        /**
         * <code>map&lt;string, .Value&gt; storage = 1;</code>
         */
        @Override
  
        public Value getStorageOrDefault(
            String key,
            Value defaultValue) {
          key.getClass();
          java.util.Map<String, Value> map =
              instance.getStorageMap();
          return map.containsKey(key) ? map.get(key) : defaultValue;
        }
        /**
         * <code>map&lt;string, .Value&gt; storage = 1;</code>
         */
        @Override
  
        public Value getStorageOrThrow(
            String key) {
          key.getClass();
          java.util.Map<String, Value> map =
              instance.getStorageMap();
          if (!map.containsKey(key)) {
            throw new IllegalArgumentException();
          }
          return map.get(key);
        }
        /**
         * <code>map&lt;string, .Value&gt; storage = 1;</code>
         */
        public Builder putStorage(
            String key,
            Value value) {
          key.getClass();
          value.getClass();
          copyOnWrite();
          instance.getMutableStorageMap().put(key, value);
          return this;
        }
        /**
         * <code>map&lt;string, .Value&gt; storage = 1;</code>
         */
        public Builder putAllStorage(
            java.util.Map<String, Value> values) {
          copyOnWrite();
          instance.getMutableStorageMap().putAll(values);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:Satchel)
      }
      @Override
      @SuppressWarnings({"unchecked", "fallthrough"})
      protected final Object dynamicMethod(
          MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new Satchel();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              Object[] objects = new Object[] {
                "storage_",
                StorageDefaultEntryHolder.defaultEntry,
              };
              String info =
                  "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0001\u0000\u0000\u00012";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<Satchel> parser = PARSER;
            if (parser == null) {
              synchronized (Satchel.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<Satchel>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:Satchel)
      private static final Satchel DEFAULT_INSTANCE;
      static {
        Satchel defaultInstance = new Satchel();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Satchel.class, defaultInstance);
      }
  
      public static Satchel getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Satchel> PARSER;
  
      public static com.google.protobuf.Parser<Satchel> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface ValueOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Value)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>.Value.Type single_value = 1;</code>
       * @return Whether the singleValue field is set.
       */
      boolean hasSingleValue();
      /**
       * <code>.Value.Type single_value = 1;</code>
       * @return The singleValue.
       */
      Value.Type getSingleValue();
  
      /**
       * <code>repeated .Value.Type multi_value = 2;</code>
       */
      java.util.List<Value.Type> 
          getMultiValueList();
      /**
       * <code>repeated .Value.Type multi_value = 2;</code>
       */
      Value.Type getMultiValue(int index);
      /**
       * <code>repeated .Value.Type multi_value = 2;</code>
       */
      int getMultiValueCount();
    }
    /**
     * Protobuf type {@code Value}
     */
    public  static final class Value extends
        com.google.protobuf.GeneratedMessageLite<
            Value, Value.Builder> implements
        // @@protoc_insertion_point(message_implements:Value)
        ValueOrBuilder {
      private Value() {
        multiValue_ = emptyProtobufList();
      }
      public interface TypeOrBuilder extends
          // @@protoc_insertion_point(interface_extends:Value.Type)
          com.google.protobuf.MessageLiteOrBuilder {
  
        /**
         * <code>double double_value = 1;</code>
         * @return The doubleValue.
         */
        double getDoubleValue();
  
        /**
         * <code>float float_value = 2;</code>
         * @return The floatValue.
         */
        float getFloatValue();
  
        /**
         * <code>sint32 int_value = 3;</code>
         * @return The intValue.
         */
        int getIntValue();
  
        /**
         * <code>sint64 long_value = 4;</code>
         * @return The longValue.
         */
        long getLongValue();
  
        /**
         * <code>bool bool_value = 5;</code>
         * @return The boolValue.
         */
        boolean getBoolValue();
  
        /**
         * <code>string string_value = 6;</code>
         * @return The stringValue.
         */
        String getStringValue();
        /**
         * <code>string string_value = 6;</code>
         * @return The bytes for stringValue.
         */
        com.google.protobuf.ByteString
            getStringValueBytes();
  
        public Type.TypeCase getTypeCase();
      }
      /**
       * Protobuf type {@code Value.Type}
       */
      public  static final class Type extends
          com.google.protobuf.GeneratedMessageLite<
              Type, Type.Builder> implements
          // @@protoc_insertion_point(message_implements:Value.Type)
          TypeOrBuilder {
        private Type() {
        }
        private int typeCase_ = 0;
        private Object type_;
        public enum TypeCase {
          DOUBLE_VALUE(1),
          FLOAT_VALUE(2),
          INT_VALUE(3),
          LONG_VALUE(4),
          BOOL_VALUE(5),
          STRING_VALUE(6),
          TYPE_NOT_SET(0);
          private final int value;
          private TypeCase(int value) {
            this.value = value;
          }
          /**
           * @deprecated Use {@link #forNumber(int)} instead.
           */
          @Deprecated
          public static TypeCase valueOf(int value) {
            return forNumber(value);
          }
  
          public static TypeCase forNumber(int value) {
            switch (value) {
              case 1: return DOUBLE_VALUE;
              case 2: return FLOAT_VALUE;
              case 3: return INT_VALUE;
              case 4: return LONG_VALUE;
              case 5: return BOOL_VALUE;
              case 6: return STRING_VALUE;
              case 0: return TYPE_NOT_SET;
              default: return null;
            }
          }
          public int getNumber() {
            return this.value;
          }
        };
  
        @Override
        public TypeCase
        getTypeCase() {
          return TypeCase.forNumber(
              typeCase_);
        }
  
        private void clearType() {
          typeCase_ = 0;
          type_ = null;
        }
  
        public static final int DOUBLE_VALUE_FIELD_NUMBER = 1;
        /**
         * <code>double double_value = 1;</code>
         * @return The doubleValue.
         */
        @Override
        public double getDoubleValue() {
          if (typeCase_ == 1) {
            return (Double) type_;
          }
          return 0D;
        }
        /**
         * <code>double double_value = 1;</code>
         * @param value The doubleValue to set.
         */
        private void setDoubleValue(double value) {
          typeCase_ = 1;
          type_ = value;
        }
        /**
         * <code>double double_value = 1;</code>
         */
        private void clearDoubleValue() {
          if (typeCase_ == 1) {
            typeCase_ = 0;
            type_ = null;
          }
        }
  
        public static final int FLOAT_VALUE_FIELD_NUMBER = 2;
        /**
         * <code>float float_value = 2;</code>
         * @return The floatValue.
         */
        @Override
        public float getFloatValue() {
          if (typeCase_ == 2) {
            return (Float) type_;
          }
          return 0F;
        }
        /**
         * <code>float float_value = 2;</code>
         * @param value The floatValue to set.
         */
        private void setFloatValue(float value) {
          typeCase_ = 2;
          type_ = value;
        }
        /**
         * <code>float float_value = 2;</code>
         */
        private void clearFloatValue() {
          if (typeCase_ == 2) {
            typeCase_ = 0;
            type_ = null;
          }
        }
  
        public static final int INT_VALUE_FIELD_NUMBER = 3;
        /**
         * <code>sint32 int_value = 3;</code>
         * @return The intValue.
         */
        @Override
        public int getIntValue() {
          if (typeCase_ == 3) {
            return (Integer) type_;
          }
          return 0;
        }
        /**
         * <code>sint32 int_value = 3;</code>
         * @param value The intValue to set.
         */
        private void setIntValue(int value) {
          typeCase_ = 3;
          type_ = value;
        }
        /**
         * <code>sint32 int_value = 3;</code>
         */
        private void clearIntValue() {
          if (typeCase_ == 3) {
            typeCase_ = 0;
            type_ = null;
          }
        }
  
        public static final int LONG_VALUE_FIELD_NUMBER = 4;
        /**
         * <code>sint64 long_value = 4;</code>
         * @return The longValue.
         */
        @Override
        public long getLongValue() {
          if (typeCase_ == 4) {
            return (Long) type_;
          }
          return 0L;
        }
        /**
         * <code>sint64 long_value = 4;</code>
         * @param value The longValue to set.
         */
        private void setLongValue(long value) {
          typeCase_ = 4;
          type_ = value;
        }
        /**
         * <code>sint64 long_value = 4;</code>
         */
        private void clearLongValue() {
          if (typeCase_ == 4) {
            typeCase_ = 0;
            type_ = null;
          }
        }
  
        public static final int BOOL_VALUE_FIELD_NUMBER = 5;
        /**
         * <code>bool bool_value = 5;</code>
         * @return The boolValue.
         */
        @Override
        public boolean getBoolValue() {
          if (typeCase_ == 5) {
            return (Boolean) type_;
          }
          return false;
        }
        /**
         * <code>bool bool_value = 5;</code>
         * @param value The boolValue to set.
         */
        private void setBoolValue(boolean value) {
          typeCase_ = 5;
          type_ = value;
        }
        /**
         * <code>bool bool_value = 5;</code>
         */
        private void clearBoolValue() {
          if (typeCase_ == 5) {
            typeCase_ = 0;
            type_ = null;
          }
        }
  
        public static final int STRING_VALUE_FIELD_NUMBER = 6;
        /**
         * <code>string string_value = 6;</code>
         * @return The stringValue.
         */
        @Override
        public String getStringValue() {
          String ref = "";
          if (typeCase_ == 6) {
            ref = (String) type_;
          }
          return ref;
        }
        /**
         * <code>string string_value = 6;</code>
         * @return The bytes for stringValue.
         */
        @Override
        public com.google.protobuf.ByteString
            getStringValueBytes() {
          String ref = "";
          if (typeCase_ == 6) {
            ref = (String) type_;
          }
          return com.google.protobuf.ByteString.copyFromUtf8(ref);
        }
        /**
         * <code>string string_value = 6;</code>
         * @param value The stringValue to set.
         */
        private void setStringValue(
            String value) {
          value.getClass();
    typeCase_ = 6;
          type_ = value;
        }
        /**
         * <code>string string_value = 6;</code>
         */
        private void clearStringValue() {
          if (typeCase_ == 6) {
            typeCase_ = 0;
            type_ = null;
          }
        }
        /**
         * <code>string string_value = 6;</code>
         * @param value The bytes for stringValue to set.
         */
        private void setStringValueBytes(
            com.google.protobuf.ByteString value) {
          checkByteStringIsUtf8(value);
          type_ = value.toStringUtf8();
          typeCase_ = 6;
        }
  
        public static Type parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static Type parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static Type parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static Type parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static Type parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static Type parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static Type parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static Type parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static Type parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }
        public static Type parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static Type parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static Type parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input, extensionRegistry);
        }
  
        public static Builder newBuilder() {
          return (Builder) DEFAULT_INSTANCE.createBuilder();
        }
        public static Builder newBuilder(Type prototype) {
          return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
        }
  
        /**
         * Protobuf type {@code Value.Type}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              Type, Builder> implements
            // @@protoc_insertion_point(builder_implements:Value.Type)
            TypeOrBuilder {
          // Construct using cafe.adriel.satchel.serializer.protobuf.proto.SatchelProto.Value.Type.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }
  
          @Override
          public TypeCase
              getTypeCase() {
            return instance.getTypeCase();
          }
  
          public Builder clearType() {
            copyOnWrite();
            instance.clearType();
            return this;
          }
  
  
          /**
           * <code>double double_value = 1;</code>
           * @return The doubleValue.
           */
          @Override
          public double getDoubleValue() {
            return instance.getDoubleValue();
          }
          /**
           * <code>double double_value = 1;</code>
           * @param value The doubleValue to set.
           * @return This builder for chaining.
           */
          public Builder setDoubleValue(double value) {
            copyOnWrite();
            instance.setDoubleValue(value);
            return this;
          }
          /**
           * <code>double double_value = 1;</code>
           * @return This builder for chaining.
           */
          public Builder clearDoubleValue() {
            copyOnWrite();
            instance.clearDoubleValue();
            return this;
          }
  
          /**
           * <code>float float_value = 2;</code>
           * @return The floatValue.
           */
          @Override
          public float getFloatValue() {
            return instance.getFloatValue();
          }
          /**
           * <code>float float_value = 2;</code>
           * @param value The floatValue to set.
           * @return This builder for chaining.
           */
          public Builder setFloatValue(float value) {
            copyOnWrite();
            instance.setFloatValue(value);
            return this;
          }
          /**
           * <code>float float_value = 2;</code>
           * @return This builder for chaining.
           */
          public Builder clearFloatValue() {
            copyOnWrite();
            instance.clearFloatValue();
            return this;
          }
  
          /**
           * <code>sint32 int_value = 3;</code>
           * @return The intValue.
           */
          @Override
          public int getIntValue() {
            return instance.getIntValue();
          }
          /**
           * <code>sint32 int_value = 3;</code>
           * @param value The intValue to set.
           * @return This builder for chaining.
           */
          public Builder setIntValue(int value) {
            copyOnWrite();
            instance.setIntValue(value);
            return this;
          }
          /**
           * <code>sint32 int_value = 3;</code>
           * @return This builder for chaining.
           */
          public Builder clearIntValue() {
            copyOnWrite();
            instance.clearIntValue();
            return this;
          }
  
          /**
           * <code>sint64 long_value = 4;</code>
           * @return The longValue.
           */
          @Override
          public long getLongValue() {
            return instance.getLongValue();
          }
          /**
           * <code>sint64 long_value = 4;</code>
           * @param value The longValue to set.
           * @return This builder for chaining.
           */
          public Builder setLongValue(long value) {
            copyOnWrite();
            instance.setLongValue(value);
            return this;
          }
          /**
           * <code>sint64 long_value = 4;</code>
           * @return This builder for chaining.
           */
          public Builder clearLongValue() {
            copyOnWrite();
            instance.clearLongValue();
            return this;
          }
  
          /**
           * <code>bool bool_value = 5;</code>
           * @return The boolValue.
           */
          @Override
          public boolean getBoolValue() {
            return instance.getBoolValue();
          }
          /**
           * <code>bool bool_value = 5;</code>
           * @param value The boolValue to set.
           * @return This builder for chaining.
           */
          public Builder setBoolValue(boolean value) {
            copyOnWrite();
            instance.setBoolValue(value);
            return this;
          }
          /**
           * <code>bool bool_value = 5;</code>
           * @return This builder for chaining.
           */
          public Builder clearBoolValue() {
            copyOnWrite();
            instance.clearBoolValue();
            return this;
          }
  
          /**
           * <code>string string_value = 6;</code>
           * @return The stringValue.
           */
          @Override
          public String getStringValue() {
            return instance.getStringValue();
          }
          /**
           * <code>string string_value = 6;</code>
           * @return The bytes for stringValue.
           */
          @Override
          public com.google.protobuf.ByteString
              getStringValueBytes() {
            return instance.getStringValueBytes();
          }
          /**
           * <code>string string_value = 6;</code>
           * @param value The stringValue to set.
           * @return This builder for chaining.
           */
          public Builder setStringValue(
              String value) {
            copyOnWrite();
            instance.setStringValue(value);
            return this;
          }
          /**
           * <code>string string_value = 6;</code>
           * @return This builder for chaining.
           */
          public Builder clearStringValue() {
            copyOnWrite();
            instance.clearStringValue();
            return this;
          }
          /**
           * <code>string string_value = 6;</code>
           * @param value The bytes for stringValue to set.
           * @return This builder for chaining.
           */
          public Builder setStringValueBytes(
              com.google.protobuf.ByteString value) {
            copyOnWrite();
            instance.setStringValueBytes(value);
            return this;
          }
  
          // @@protoc_insertion_point(builder_scope:Value.Type)
        }
        @Override
        @SuppressWarnings({"unchecked", "fallthrough"})
        protected final Object dynamicMethod(
            MethodToInvoke method,
            Object arg0, Object arg1) {
          switch (method) {
            case NEW_MUTABLE_INSTANCE: {
              return new Type();
            }
            case NEW_BUILDER: {
              return new Builder();
            }
            case BUILD_MESSAGE_INFO: {
                Object[] objects = new Object[] {
                  "type_",
                  "typeCase_",
                };
                String info =
                    "\u0000\u0006\u0001\u0000\u0001\u0006\u0006\u0000\u0000\u0000\u00013\u0000\u00024" +
                    "\u0000\u0003B\u0000\u0004C\u0000\u0005:\u0000\u0006\u023b\u0000";
                return newMessageInfo(DEFAULT_INSTANCE, info, objects);
            }
            // fall through
            case GET_DEFAULT_INSTANCE: {
              return DEFAULT_INSTANCE;
            }
            case GET_PARSER: {
              com.google.protobuf.Parser<Type> parser = PARSER;
              if (parser == null) {
                synchronized (Type.class) {
                  parser = PARSER;
                  if (parser == null) {
                    parser =
                        new DefaultInstanceBasedParser<Type>(
                            DEFAULT_INSTANCE);
                    PARSER = parser;
                  }
                }
              }
              return parser;
          }
          case GET_MEMOIZED_IS_INITIALIZED: {
            return (byte) 1;
          }
          case SET_MEMOIZED_IS_INITIALIZED: {
            return null;
          }
          }
          throw new UnsupportedOperationException();
        }
  
  
        // @@protoc_insertion_point(class_scope:Value.Type)
        private static final Type DEFAULT_INSTANCE;
        static {
          Type defaultInstance = new Type();
          // New instances are implicitly immutable so no need to make
          // immutable.
          DEFAULT_INSTANCE = defaultInstance;
          com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
            Type.class, defaultInstance);
        }
  
        public static Type getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static volatile com.google.protobuf.Parser<Type> PARSER;
  
        public static com.google.protobuf.Parser<Type> parser() {
          return DEFAULT_INSTANCE.getParserForType();
        }
      }
  
      public static final int SINGLE_VALUE_FIELD_NUMBER = 1;
      private Type singleValue_;
      /**
       * <code>.Value.Type single_value = 1;</code>
       */
      @Override
      public boolean hasSingleValue() {
        return singleValue_ != null;
      }
      /**
       * <code>.Value.Type single_value = 1;</code>
       */
      @Override
      public Type getSingleValue() {
        return singleValue_ == null ? Type.getDefaultInstance() : singleValue_;
      }
      /**
       * <code>.Value.Type single_value = 1;</code>
       */
      private void setSingleValue(Type value) {
        value.getClass();
    singleValue_ = value;
        
        }
      /**
       * <code>.Value.Type single_value = 1;</code>
       */
      @SuppressWarnings({"ReferenceEquality"})
      private void mergeSingleValue(Type value) {
        value.getClass();
    if (singleValue_ != null &&
            singleValue_ != Type.getDefaultInstance()) {
          singleValue_ =
            Type.newBuilder(singleValue_).mergeFrom(value).buildPartial();
        } else {
          singleValue_ = value;
        }
        
      }
      /**
       * <code>.Value.Type single_value = 1;</code>
       */
      private void clearSingleValue() {  singleValue_ = null;
        
      }
  
      public static final int MULTI_VALUE_FIELD_NUMBER = 2;
      private com.google.protobuf.Internal.ProtobufList<Type> multiValue_;
      /**
       * <code>repeated .Value.Type multi_value = 2;</code>
       */
      @Override
      public java.util.List<Type> getMultiValueList() {
        return multiValue_;
      }
      /**
       * <code>repeated .Value.Type multi_value = 2;</code>
       */
      public java.util.List<? extends TypeOrBuilder> 
          getMultiValueOrBuilderList() {
        return multiValue_;
      }
      /**
       * <code>repeated .Value.Type multi_value = 2;</code>
       */
      @Override
      public int getMultiValueCount() {
        return multiValue_.size();
      }
      /**
       * <code>repeated .Value.Type multi_value = 2;</code>
       */
      @Override
      public Type getMultiValue(int index) {
        return multiValue_.get(index);
      }
      /**
       * <code>repeated .Value.Type multi_value = 2;</code>
       */
      public TypeOrBuilder getMultiValueOrBuilder(
          int index) {
        return multiValue_.get(index);
      }
      private void ensureMultiValueIsMutable() {
        com.google.protobuf.Internal.ProtobufList<Type> tmp = multiValue_;
        if (!tmp.isModifiable()) {
          multiValue_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <code>repeated .Value.Type multi_value = 2;</code>
       */
      private void setMultiValue(
          int index, Type value) {
        value.getClass();
    ensureMultiValueIsMutable();
        multiValue_.set(index, value);
      }
      /**
       * <code>repeated .Value.Type multi_value = 2;</code>
       */
      private void addMultiValue(Type value) {
        value.getClass();
    ensureMultiValueIsMutable();
        multiValue_.add(value);
      }
      /**
       * <code>repeated .Value.Type multi_value = 2;</code>
       */
      private void addMultiValue(
          int index, Type value) {
        value.getClass();
    ensureMultiValueIsMutable();
        multiValue_.add(index, value);
      }
      /**
       * <code>repeated .Value.Type multi_value = 2;</code>
       */
      private void addAllMultiValue(
          Iterable<? extends Type> values) {
        ensureMultiValueIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, multiValue_);
      }
      /**
       * <code>repeated .Value.Type multi_value = 2;</code>
       */
      private void clearMultiValue() {
        multiValue_ = emptyProtobufList();
      }
      /**
       * <code>repeated .Value.Type multi_value = 2;</code>
       */
      private void removeMultiValue(int index) {
        ensureMultiValueIsMutable();
        multiValue_.remove(index);
      }
  
      public static Value parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static Value parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static Value parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static Value parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static Value parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static Value parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static Value parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static Value parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static Value parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static Value parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static Value parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static Value parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
  
      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(Value prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * Protobuf type {@code Value}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            Value, Builder> implements
          // @@protoc_insertion_point(builder_implements:Value)
          ValueOrBuilder {
        // Construct using cafe.adriel.satchel.serializer.protobuf.proto.SatchelProto.Value.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>.Value.Type single_value = 1;</code>
         */
        @Override
        public boolean hasSingleValue() {
          return instance.hasSingleValue();
        }
        /**
         * <code>.Value.Type single_value = 1;</code>
         */
        @Override
        public Type getSingleValue() {
          return instance.getSingleValue();
        }
        /**
         * <code>.Value.Type single_value = 1;</code>
         */
        public Builder setSingleValue(Type value) {
          copyOnWrite();
          instance.setSingleValue(value);
          return this;
          }
        /**
         * <code>.Value.Type single_value = 1;</code>
         */
        public Builder setSingleValue(
            Type.Builder builderForValue) {
          copyOnWrite();
          instance.setSingleValue(builderForValue.build());
          return this;
        }
        /**
         * <code>.Value.Type single_value = 1;</code>
         */
        public Builder mergeSingleValue(Type value) {
          copyOnWrite();
          instance.mergeSingleValue(value);
          return this;
        }
        /**
         * <code>.Value.Type single_value = 1;</code>
         */
        public Builder clearSingleValue() {  copyOnWrite();
          instance.clearSingleValue();
          return this;
        }
  
        /**
         * <code>repeated .Value.Type multi_value = 2;</code>
         */
        @Override
        public java.util.List<Type> getMultiValueList() {
          return java.util.Collections.unmodifiableList(
              instance.getMultiValueList());
        }
        /**
         * <code>repeated .Value.Type multi_value = 2;</code>
         */
        @Override
        public int getMultiValueCount() {
          return instance.getMultiValueCount();
        }/**
         * <code>repeated .Value.Type multi_value = 2;</code>
         */
        @Override
        public Type getMultiValue(int index) {
          return instance.getMultiValue(index);
        }
        /**
         * <code>repeated .Value.Type multi_value = 2;</code>
         */
        public Builder setMultiValue(
            int index, Type value) {
          copyOnWrite();
          instance.setMultiValue(index, value);
          return this;
        }
        /**
         * <code>repeated .Value.Type multi_value = 2;</code>
         */
        public Builder setMultiValue(
            int index, Type.Builder builderForValue) {
          copyOnWrite();
          instance.setMultiValue(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .Value.Type multi_value = 2;</code>
         */
        public Builder addMultiValue(Type value) {
          copyOnWrite();
          instance.addMultiValue(value);
          return this;
        }
        /**
         * <code>repeated .Value.Type multi_value = 2;</code>
         */
        public Builder addMultiValue(
            int index, Type value) {
          copyOnWrite();
          instance.addMultiValue(index, value);
          return this;
        }
        /**
         * <code>repeated .Value.Type multi_value = 2;</code>
         */
        public Builder addMultiValue(
            Type.Builder builderForValue) {
          copyOnWrite();
          instance.addMultiValue(builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .Value.Type multi_value = 2;</code>
         */
        public Builder addMultiValue(
            int index, Type.Builder builderForValue) {
          copyOnWrite();
          instance.addMultiValue(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .Value.Type multi_value = 2;</code>
         */
        public Builder addAllMultiValue(
            Iterable<? extends Type> values) {
          copyOnWrite();
          instance.addAllMultiValue(values);
          return this;
        }
        /**
         * <code>repeated .Value.Type multi_value = 2;</code>
         */
        public Builder clearMultiValue() {
          copyOnWrite();
          instance.clearMultiValue();
          return this;
        }
        /**
         * <code>repeated .Value.Type multi_value = 2;</code>
         */
        public Builder removeMultiValue(int index) {
          copyOnWrite();
          instance.removeMultiValue(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:Value)
      }
      @Override
      @SuppressWarnings({"unchecked", "fallthrough"})
      protected final Object dynamicMethod(
          MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new Value();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              Object[] objects = new Object[] {
                "singleValue_",
                "multiValue_",
                Type.class,
              };
              String info =
                  "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0001\u0000\u0001\t\u0002\u001b" +
                  "";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<Value> parser = PARSER;
            if (parser == null) {
              synchronized (Value.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<Value>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:Value)
      private static final Value DEFAULT_INSTANCE;
      static {
        Value defaultInstance = new Value();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Value.class, defaultInstance);
      }
  
      public static Value getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Value> PARSER;
  
      public static com.google.protobuf.Parser<Value> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
  
    static {
    }
  
    // @@protoc_insertion_point(outer_class_scope)
  }
  