Protox.MergeMessage (Protox v2.0.4)
View SourceThis module provides a helper function to merge messages.
Summary
Functions
Singular fields of msg will be overwritten, if specified in from, except for
embedded messages which will be merged. Repeated fields will be concatenated.
Functions
Singular fields of msg will be overwritten, if specified in from, except for
embedded messages which will be merged. Repeated fields will be concatenated.
Note that "specified" has a different meaning in protobuf 2 and 3:
2: if the singular field from
fromis nil, the value frommsgis kept3: if the singular field from
fromis set to the default value, the value frommsgis kept. This behaviour matches the C++ reference implementation behaviour.msgandfrommust be of the same type; oreither
msgorfromisnil: the non-nil message is returned; orboth are
nil:nilis returned
Example
iex> r1 = %Protobuf2Message{a: 0, b: :ONE}
iex> r2 = %Protobuf2Message{a: nil, b: :TWO}
iex> Protox.MergeMessage.merge(r1, r2)
%Protobuf2Message{a: 0, b: :TWO}
iex> Protox.MergeMessage.merge(r2, r1)
%Protobuf2Message{a: 0, b: :ONE}