protolator

package
v0.0.0-...-523a819 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 21, 2019 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DeepMarshalJSON

func DeepMarshalJSON(w io.Writer, msg proto.Message) error

deepmarshaljson将msg封送到w作为json,但不封送包含嵌套的字节字段 将消息封送为base64(与标准协议编码类似),这些嵌套的消息将被重新标记 作为这些消息的JSON表示。这样做是为了让JSON表示为非二进制的 尽可能让人可读。

func DeepUnmarshalJSON

func DeepUnmarshalJSON(r io.Reader, msg proto.Message) error

deepunmarshaljson接受deepmarshaljson生成的json输出并将其解码为msg 这包括将扩展的嵌套元素重新封送为二进制形式

func MostlyDeterministicMarshal

func MostlyDeterministicMarshal(msg proto.Message) ([]byte, error)

大多数情况下,TerministicMarshal不是您要寻找的功能。 它使Protobuf序列化在单个构建中保持一致。它 不能保证序列化在proto中是确定性的 版本或原型实现。它适用于以下情况: 同一进程希望比较二进制消息是否相等 需要先解组,但一般不应使用。

Types

type DecoratedProto

type DecoratedProto interface {
	//底层返回正在动态修饰的底层协议消息
	Underlying() proto.Message
}

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 StaticallyOpaqueMapFieldProto

type StaticallyOpaqueMapFieldProto interface {
	//staticallyopaquefields返回包含不透明数据的字段名
	StaticallyOpaqueMapFields() []string

	//staticallyopaquefieldproto返回新分配的正确的proto消息
	//键入字段名。
	StaticallyOpaqueMapFieldProto(name string, key string) (proto.Message, error)
}

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应该由具有映射到字节字段的协议实现。 它是由协议的其他内容确定的消息类型的封送值。

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL