...

Package protoiface

import "google.golang.org/protobuf/runtime/protoiface"
Overview
Index

Overview ▾

Package protoiface contains types referenced or implemented by messages.

WARNING: This package should only be imported by message implementations. The functionality found in this package should be accessed through higher-level abstractions provided by the proto package.

type CheckInitializedInput

CheckInitializedInput is input to the CheckInitialized method.

type CheckInitializedInput = struct {
    pragma.NoUnkeyedLiterals

    Message protoreflect.Message
}

type CheckInitializedOutput

CheckInitializedOutput is output from the CheckInitialized method.

type CheckInitializedOutput = struct {
    pragma.NoUnkeyedLiterals
}

type ExtensionRangeV1

type ExtensionRangeV1 struct {
    Start, End int32 // both inclusive
}

type MarshalInput

MarshalInput is input to the Marshal method.

type MarshalInput = struct {
    pragma.NoUnkeyedLiterals

    Message protoreflect.Message
    Buf     []byte // output is appended to this buffer
    Flags   MarshalInputFlags
}

type MarshalInputFlags

MarshalInputFlags configure the marshaler. Most flags correspond to fields in proto.MarshalOptions.

type MarshalInputFlags = uint8
const (
    MarshalDeterministic MarshalInputFlags = 1 << iota
    MarshalUseCachedSize
)

type MarshalOutput

MarshalOutput is output from the Marshal method.

type MarshalOutput = struct {
    pragma.NoUnkeyedLiterals

    Buf []byte // contains marshaled message
}

type MergeInput

MergeInput is input to the Merge method.

type MergeInput = struct {
    pragma.NoUnkeyedLiterals

    Source      protoreflect.Message
    Destination protoreflect.Message
}

type MergeOutput

MergeOutput is output from the Merge method.

type MergeOutput = struct {
    pragma.NoUnkeyedLiterals

    Flags MergeOutputFlags
}

type MergeOutputFlags

MergeOutputFlags are output from the Merge method.

type MergeOutputFlags = uint8
const (
    // MergeComplete reports whether the merge was performed.
    // If unset, the merger must have made no changes to the destination.
    MergeComplete MergeOutputFlags = 1 << iota
)

type MessageV1

type MessageV1 interface {
    Reset()
    String() string
    ProtoMessage()
}

type Methods

Methods is a set of optional fast-path implementations of various operations.

type Methods = struct {
    pragma.NoUnkeyedLiterals

    // Flags indicate support for optional features.
    Flags SupportFlags

    // Size returns the size in bytes of the wire-format encoding of a message.
    // Marshal must be provided if a custom Size is provided.
    Size func(SizeInput) SizeOutput

    // Marshal formats a message in the wire-format encoding to the provided buffer.
    // Size should be provided if a custom Marshal is provided.
    // It must not return an error for a partial message.
    Marshal func(MarshalInput) (MarshalOutput, error)

    // Unmarshal parses the wire-format encoding and merges the result into a message.
    // It must not reset the target message or return an error for a partial message.
    Unmarshal func(UnmarshalInput) (UnmarshalOutput, error)

    // Merge merges the contents of a source message into a destination message.
    Merge func(MergeInput) MergeOutput

    // CheckInitialized returns an error if any required fields in the message are not set.
    CheckInitialized func(CheckInitializedInput) (CheckInitializedOutput, error)
}

type SizeInput

SizeInput is input to the Size method.

type SizeInput = struct {
    pragma.NoUnkeyedLiterals

    Message protoreflect.Message
    Flags   MarshalInputFlags
}

type SizeOutput

SizeOutput is output from the Size method.

type SizeOutput = struct {
    pragma.NoUnkeyedLiterals

    Size int
}

type SupportFlags

SupportFlags indicate support for optional features.

type SupportFlags = uint64
const (
    // SupportMarshalDeterministic reports whether MarshalOptions.Deterministic is supported.
    SupportMarshalDeterministic SupportFlags = 1 << iota

    // SupportUnmarshalDiscardUnknown reports whether UnmarshalOptions.DiscardUnknown is supported.
    SupportUnmarshalDiscardUnknown
)

type UnmarshalInput

UnmarshalInput is input to the Unmarshal method.

type UnmarshalInput = struct {
    pragma.NoUnkeyedLiterals

    Message  protoreflect.Message
    Buf      []byte // input buffer
    Flags    UnmarshalInputFlags
    Resolver interface {
        FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error)
        FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error)
    }
    Depth int
}

type UnmarshalInputFlags

UnmarshalInputFlags configure the unmarshaler. Most flags correspond to fields in proto.UnmarshalOptions.

type UnmarshalInputFlags = uint8
const (
    UnmarshalDiscardUnknown UnmarshalInputFlags = 1 << iota
)

type UnmarshalOutput

UnmarshalOutput is output from the Unmarshal method.

type UnmarshalOutput = struct {
    pragma.NoUnkeyedLiterals

    Flags UnmarshalOutputFlags
}

type UnmarshalOutputFlags

UnmarshalOutputFlags are output from the Unmarshal method.

type UnmarshalOutputFlags = uint8
const (
    // UnmarshalInitialized may be set on return if all required fields are known to be set.
    // If unset, then it does not necessarily indicate that the message is uninitialized,
    // only that its status could not be confirmed.
    UnmarshalInitialized UnmarshalOutputFlags = 1 << iota
)