Libp2p.Protobuf (libp2p_elixir v0.9.0)

Minimal protobuf (proto2/proto3) decoding helpers sufficient for libp2p specs.

This is intentionally not a general-purpose protobuf implementation.

Summary

Functions

Encode a length-delimited field (bytes or nested message).

Encode a (field_no, wire_type) tag as a uvarint.

Encode a varint field.

Types

field()

@type field() :: {non_neg_integer(), non_neg_integer(), integer() | binary()}

Functions

decode_fields(bin)

@spec decode_fields(binary()) :: [field()]

encode_len_field(field_no, bytes)

@spec encode_len_field(non_neg_integer(), binary()) :: binary()

Encode a length-delimited field (bytes or nested message).

encode_tag(field_no, wire_type)

@spec encode_tag(non_neg_integer(), non_neg_integer()) :: binary()

Encode a (field_no, wire_type) tag as a uvarint.

encode_varint_field(field_no, value)

@spec encode_varint_field(non_neg_integer(), non_neg_integer()) :: binary()

Encode a varint field.