def() =
{proto_defs_version, version()} |
{{msg, Name :: atom()}, [field()]} |
{{group, Name :: atom()}, [field()]} |
{{enum, Name :: atom()},
[{Sym :: atom(), Value :: integer()} |
{option, Name :: atom(), Val :: term()}]} |
{{service, Name :: atom()},
[#rpc{name = atom() | undefined,
input = any(),
output = any(),
input_stream = boolean() | undefined,
output_stream = boolean() | undefined,
opts = [term()] | undefined}]} |
{package, Name :: atom()} |
{syntax, string()} |
{{extensions, MsgName :: atom()}, [field_number_extension()]} |
{{extend, MsgName :: atom()}, MoreFields :: [field()]} |
{proto3_msgs, [MsgName :: atom()]} |
{{reserved_numbers, MsgName :: atom()}, [integer()]} |
{{reserved_names, MsgName :: atom()}, [FieldName :: atom()]} |
{import, ProtoFile :: string()} |
{{msg_options, MsgName :: atom()}, [msg_option()]} |
{{msg_containment, ProtoName :: string()},
[MsgName :: atom()]} |
{{pkg_containment, ProtoName :: string()}, PkgName :: atom()} |
{{service_containment, ProtoName :: string()},
[ServiceName :: atom()]} |
{{rpc_containment, ProtoName :: string()},
[{ServiceName :: atom(), RpcName :: atom()}]} |
{{enum_containment, ProtoName :: string()},
[EnumName :: atom()]} |
{file, {BaseSansExt :: string(), Base :: string()}}
defs() = [def()]
field() =
#field{name = atom() | undefined,
fnum = integer() | undefined,
rnum = pos_integer() | undefined,
type =
gpb_field_type() |
gpb_internal_intermediary_ref() |
gpb_internal_intermediary_map_ref() |
undefined,
occurrence =
required |
optional |
repeated |
defaulty |
undefined,
opts = [term()]} |
#gpb_oneof{name = atom() | undefined,
rnum = pos_integer() | undefined,
fields =
[#field{name = atom() | undefined,
fnum = integer() | undefined,
rnum = pos_integer() | undefined,
type =
gpb_field_type() |
gpb_internal_intermediary_ref() |
gpb_internal_intermediary_map_ref() |
undefined,
occurrence =
required |
optional |
repeated |
defaulty |
undefined,
opts = [term()]}] |
undefined}
field_number_extension() =
{Lower :: integer(), Upper :: integer() | max}
gpb_field_type() =
int32 |
int64 |
uint32 |
uint64 |
sint32 |
sint64 |
fixed32 |
fixed64 |
sfixed32 |
sfixed64 |
bool |
float |
double |
string |
bytes |
{enum, atom()} |
{msg, atom()} |
{group, atom()} |
{map, gpb_map_key(), gpb_map_value()}
gpb_internal_intermediary_map_ref() =
{map,
gpb_map_key(),
gpb_map_value() | gpb_internal_intermediary_ref()}
gpb_internal_intermediary_ref() =
{ref, term()} |
{msg, list()} |
{group, list()} |
{enum, list()}
gpb_map_key() =
int32 |
int64 |
uint32 |
uint64 |
sint32 |
sint64 |
fixed32 |
fixed64 |
sfixed32 |
sfixed64 |
bool |
string
gpb_map_value() = gpb_scalar() | {enum, atom()} | {msg, atom()}
gpb_scalar() =
int32 |
int64 |
uint32 |
uint64 |
sint32 |
sint64 |
fixed32 |
fixed64 |
sfixed32 |
sfixed64 |
bool |
float |
double |
string |
bytes
msg_option() =
{[NameComponent :: atom()], OptionValue :: term()}
version() = integer()
| convert_defs_from_latest_version/2 | Convert proto definitions on the latest format to some earlier format. |
| convert_defs_to_latest_version/1 | Convert proto definitions from some format found in the definitions, into the latest version for internal use within gpb. |
| earliest_supported_defs_version/0 | Return the earliest supported proto defs version. |
| fetch_imports/1 | Fetch the imported files. |
| format_error/1 | |
| latest_defs_version/0 | Return the number of the latest proto defs version. |
| supported_defs_versions/0 | Return a list of supported versions of the definition format. |
convert_defs_from_latest_version(Defs, TargetVersion :: version()) -> {ok, Defs} | {error, term()}
Defs = defs()
Convert proto definitions on the latest format to some earlier format.
convert_defs_to_latest_version(Defs) ->
{ok, Defs} | {error, term()}
Defs = defs()
Convert proto definitions from some format found in the definitions, into the latest version for internal use within gpb.
earliest_supported_defs_version() -> any()
Return the earliest supported proto defs version.
fetch_imports(Defs :: defs()) -> [ProtoFile :: string()]
Fetch the imported files.
format_error(Reason) -> any()
latest_defs_version() -> any()
Return the number of the latest proto defs version.
supported_defs_versions() -> [version()]
Return a list of supported versions of the definition format.
The format is currently a list of tuples, most are 2-tuples.
A new version means a non-backwards-compatible version change.
Even when the version number has not changed, there may still be differences, but only backwards compatible changes.
See filedoc/dev-guide/proto-defs-versions.md` for more info.
Format versions obey the Erlang term order and be compared like
normal Erlang terms with for instance `=<.
Generated by EDoc