Documentation ¶
Index ¶
- func DeepMarshalJSON(w io.Writer, msg proto.Message) error
- func DeepUnmarshalJSON(r io.Reader, msg proto.Message) error
- func MostlyDeterministicMarshal(msg proto.Message) ([]byte, error)
- type DecoratedProto
- type DynamicFieldProto
- type DynamicMapFieldProto
- type DynamicSliceFieldProto
- type StaticallyOpaqueFieldProto
- type StaticallyOpaqueMapFieldProto
- type StaticallyOpaqueSliceFieldProto
- type VariablyOpaqueFieldProto
- type VariablyOpaqueMapFieldProto
- type VariablyOpaqueSliceFieldProto
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DeepMarshalJSON ¶
deepmarshaljson将msg封送到w作为json,但不封送包含嵌套的字节字段 将消息封送为base64(与标准协议编码类似),这些嵌套的消息将被重新标记 作为这些消息的JSON表示。这样做是为了让JSON表示为非二进制的 尽可能让人可读。
func DeepUnmarshalJSON ¶
deepunmarshaljson接受deepmarshaljson生成的json输出并将其解码为msg 这包括将扩展的嵌套元素重新封送为二进制形式
Types ¶
type DecoratedProto ¶
deconreatedprot应该由动态*fieldproto接口应用的动态包装器实现。
(而不是按照接口定义(https://github.com/golang/protobuf/issues/291)
type DynamicFieldProto ¶
type DynamicFieldProto interface { //dynamicFields返回动态字段名 DynamicFields() []string //dynamicFieldProto返回新分配的动态消息,修饰底层 //带有运行时确定函数的协议消息 DynamicFieldProto(name string, underlying proto.Message) (proto.Message, error) }
dynamicFieldProto应该由具有其属性的嵌套字段的Proto实现 (例如它们的不透明类型)在运行时之前无法确定
type DynamicMapFieldProto ¶
type DynamicMapFieldProto interface { //dynamicFields返回动态字段名 DynamicMapFields() []string //dynamicmapfieldproto返回新分配的动态消息,修饰底层 //带有运行时确定函数的协议消息 DynamicMapFieldProto(name string, key string, underlying proto.Message) (proto.Message, error) }
DynamicMapFieldProto应该由具有映射到其属性的消息的Proto实现 (例如它们的不透明类型)在运行时之前无法确定
type DynamicSliceFieldProto ¶
type DynamicSliceFieldProto interface { //dynamicFields返回动态字段名 DynamicSliceFields() []string //dynamicslicefieldproto返回新分配的动态消息,修饰底层 //带有运行时确定函数的协议消息 DynamicSliceFieldProto(name string, index int, underlying proto.Message) (proto.Message, error) }
dynamicslicefieldproto应该由具有其属性的消息切片的proto实现。 (例如它们的不透明类型)在运行时之前无法确定
type StaticallyOpaqueFieldProto ¶
type StaticallyOpaqueFieldProto interface { //staticallyopaquefields返回包含不透明数据的字段名 StaticallyOpaqueFields() []string //staticallyopaquefieldproto返回新分配的正确的proto消息 //键入字段名。 StaticallyOpaqueFieldProto(name string) (proto.Message, error) }
staticallyopaquefieldproto应该由具有字节字段的proto实现,其中 是固定类型的封送值
type StaticallyOpaqueSliceFieldProto ¶
type StaticallyOpaqueSliceFieldProto interface { //staticallyopaquefields返回包含不透明数据的字段名 StaticallyOpaqueSliceFields() []string //staticallyopaquefieldproto返回新分配的正确的proto消息 //键入字段名。 StaticallyOpaqueSliceFieldProto(name string, index int) (proto.Message, error) }
它是固定类型的封送值
type VariablyOpaqueFieldProto ¶
type VariablyOpaqueFieldProto interface { //variableyopaquefields返回包含不透明数据的字段名 VariablyOpaqueFields() []string //variablyopaquefieldproto返回新分配的正确的proto消息 //键入字段名。 VariablyOpaqueFieldProto(name string) (proto.Message, error) }
variablyopaquefieldproto应该由具有字节字段的proto实现,其中 封送值是否取决于协议的其他内容?
type VariablyOpaqueMapFieldProto ¶
type VariablyOpaqueMapFieldProto interface { //variableyopaquefields返回包含不透明数据的字段名 VariablyOpaqueMapFields() []string //variablyopaquefieldproto返回新分配的正确的proto消息 //键入字段名。 VariablyOpaqueMapFieldProto(name string, key string) (proto.Message, error) }
variablyopaquemapfieldproto应该由映射到字节字段的proto实现。 它是由协议的其他内容确定的消息类型的封送值。
type VariablyOpaqueSliceFieldProto ¶
type VariablyOpaqueSliceFieldProto interface { //variableyopaquefields返回包含不透明数据的字段名 VariablyOpaqueSliceFields() []string //variablyopaquefieldproto返回新分配的正确的proto消息 //键入字段名。 VariablyOpaqueSliceFieldProto(name string, index int) (proto.Message, error) }
variableyopaqueslicefieldproto应该由具有映射到字节字段的协议实现。 它是由协议的其他内容确定的消息类型的封送值。