package ocaml-protoc-plugin

  1. Overview
  2. Docs
type t = {
  1. message_set_wire_format : bool;
    (*

    Set true to use the old proto1 MessageSet wire format for extensions. This is provided for backwards-compatibility with the MessageSet wire format. You should not use this for any other reason: It's less efficient, has fewer features, and is more complicated.

    The message must be defined exactly as follows:

             message Foo {
               option message_set_wire_format = true;
               extensions 4 to max;
             }

    Note that the message cannot have any defined fields; MessageSets only have extensions.

    All extensions of your type must be singular messages; e.g. they cannot be int32s, enums, or repeated messages.

    Because this is an option, the above two restrictions are not enforced by the protocol compiler.

    *)
  2. no_standard_descriptor_accessor : bool;
    (*

    Disables the generation of the standard "descriptor()" accessor, which can conflict with a field of the same name. This is meant to make migration from proto1 easier; new code should avoid fields named "descriptor".

    *)
  3. deprecated : bool;
    (*

    Is this message deprecated? Depending on the target platform, this can emit Deprecated annotations for the message, or it will be completely ignored; in the very least, this is a formalization for deprecating messages.

    *)
  4. map_entry : bool option;
    (*

    Whether the message is an automatically generated map entry type for the maps field.

    For maps fields:

               map<KeyType, ValueType> map_field = 1;

    The parsed descriptor looks like:

               message MapFieldEntry {
                   option map_entry = true;
                   optional KeyType key = 1;
                   optional ValueType value = 2;
               }
               repeated MapFieldEntry map_field = 1;

    Implementations may choose not to generate the map_entry=true message, but use a native map in the target language to hold the keys and values. The reflection APIs in such implementations still need to work as if the field is a repeated message field.

    NOTE: Do not set the option in .proto files. Always use the maps syntax instead. The option should only be implicitly set by the proto compiler parser.

    *)
  5. uninterpreted_option : UninterpretedOption.t list;
    (*

    The parser stores options it doesn't recognize here. See above.

    *)
  6. extensions' : Ocaml_protoc_plugin.Extensions.t;
}
val make : ?message_set_wire_format:bool -> ?no_standard_descriptor_accessor:bool -> ?deprecated:bool -> ?map_entry:bool -> ?uninterpreted_option:UninterpretedOption.t list -> ?extensions':Ocaml_protoc_plugin.Extensions.t -> unit -> t

Helper function to generate a message using default values

Serialize the message to binary format

Deserialize from binary format

Serialize to Json (compatible with Yojson.Basic.t)

Deserialize from Json (compatible with Yojson.Basic.t)

val name : unit -> string

Fully qualified protobuf name of this message