Documentation ¶
Overview ¶
Package signature defines types representing interface and method signatures.
Index ¶
- func MethodNames(sig []Interface) []string
- type Arg
- type ArgTarget
- func (t *ArgTarget) FinishField(_, _ vdl.Target) error
- func (t *ArgTarget) FinishFields(_ vdl.FieldsTarget) error
- func (t *ArgTarget) StartField(name string) (key, field vdl.Target, _ error)
- func (t *ArgTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error)
- func (t *ArgTarget) ZeroField(name string) error
- type Embed
- type EmbedTarget
- func (t *EmbedTarget) FinishField(_, _ vdl.Target) error
- func (t *EmbedTarget) FinishFields(_ vdl.FieldsTarget) error
- func (t *EmbedTarget) StartField(name string) (key, field vdl.Target, _ error)
- func (t *EmbedTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error)
- func (t *EmbedTarget) ZeroField(name string) error
- type Interface
- func (m *Interface) FillVDLTarget(t vdl.Target, tt *vdl.Type) error
- func (s *Interface) FindMethod(name string) (Method, bool)
- func (m *Interface) MakeVDLTarget() vdl.Target
- func (x Interface) VDLIsZero() bool
- func (x *Interface) VDLRead(dec vdl.Decoder) error
- func (x Interface) VDLWrite(enc vdl.Encoder) error
- type InterfaceTarget
- func (t *InterfaceTarget) FinishField(_, _ vdl.Target) error
- func (t *InterfaceTarget) FinishFields(_ vdl.FieldsTarget) error
- func (t *InterfaceTarget) StartField(name string) (key, field vdl.Target, _ error)
- func (t *InterfaceTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error)
- func (t *InterfaceTarget) ZeroField(name string) error
- type Method
- type MethodTarget
- func (t *MethodTarget) FinishField(_, _ vdl.Target) error
- func (t *MethodTarget) FinishFields(_ vdl.FieldsTarget) error
- func (t *MethodTarget) StartField(name string) (key, field vdl.Target, _ error)
- func (t *MethodTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error)
- func (t *MethodTarget) ZeroField(name string) error
- type SortableMethods
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MethodNames ¶
MethodNames returns a sorted list of all method names from x.
Types ¶
type ArgTarget ¶
type ArgTarget struct { Value *Arg vdl.TargetBase vdl.FieldsTargetBase // contains filtered or unexported fields }
func (*ArgTarget) FinishFields ¶
func (t *ArgTarget) FinishFields(_ vdl.FieldsTarget) error
func (*ArgTarget) StartField ¶
func (*ArgTarget) StartFields ¶
type EmbedTarget ¶
type EmbedTarget struct { Value *Embed vdl.TargetBase vdl.FieldsTargetBase // contains filtered or unexported fields }
func (*EmbedTarget) FinishField ¶
func (t *EmbedTarget) FinishField(_, _ vdl.Target) error
func (*EmbedTarget) FinishFields ¶
func (t *EmbedTarget) FinishFields(_ vdl.FieldsTarget) error
func (*EmbedTarget) StartField ¶
func (t *EmbedTarget) StartField(name string) (key, field vdl.Target, _ error)
func (*EmbedTarget) StartFields ¶
func (t *EmbedTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error)
func (*EmbedTarget) ZeroField ¶
func (t *EmbedTarget) ZeroField(name string) error
type Interface ¶
type Interface struct { Name string PkgPath string Doc string Embeds []Embed // No special ordering. Methods []Method // Ordered by method name. }
Interface describes the signature of an interface.
func CleanInterfaces ¶
CleanInterfaces returns a cleaned version of sig. Duplicate interfaces are merged, duplicate embeds and methods are dropped, and all methods are sorted by name.
func CopyInterface ¶
CopyInterface returns a deep copy of x.
func CopyInterfaces ¶
CopyInterfaces returns a deep copy of x.
func (*Interface) FillVDLTarget ¶
func (*Interface) FindMethod ¶
FindMethod returns the signature of the method with the given name and true iff the method exists, otherwise returns an empty signature and false.
func (*Interface) MakeVDLTarget ¶
type InterfaceTarget ¶
type InterfaceTarget struct { Value *Interface vdl.TargetBase vdl.FieldsTargetBase // contains filtered or unexported fields }
func (*InterfaceTarget) FinishField ¶
func (t *InterfaceTarget) FinishField(_, _ vdl.Target) error
func (*InterfaceTarget) FinishFields ¶
func (t *InterfaceTarget) FinishFields(_ vdl.FieldsTarget) error
func (*InterfaceTarget) StartField ¶
func (t *InterfaceTarget) StartField(name string) (key, field vdl.Target, _ error)
func (*InterfaceTarget) StartFields ¶
func (t *InterfaceTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error)
func (*InterfaceTarget) ZeroField ¶
func (t *InterfaceTarget) ZeroField(name string) error
type Method ¶
type Method struct { Name string Doc string InArgs []Arg // Input arguments OutArgs []Arg // Output arguments InStream *Arg // Input stream (optional) OutStream *Arg // Output stream (optional) Tags []*vdl.Value // Method tags }
Method describes the signature of an interface method.
func FirstMethod ¶
FirstMethod returns the signature of the method with the given name and true iff the method exists, otherwise returns an empty signature and false. If the method exists in more than one interface, we return the method from the the first interface with the given method name.
func (*Method) MakeVDLTarget ¶
type MethodTarget ¶
type MethodTarget struct { Value *Method vdl.TargetBase vdl.FieldsTargetBase // contains filtered or unexported fields }
func (*MethodTarget) FinishField ¶
func (t *MethodTarget) FinishField(_, _ vdl.Target) error
func (*MethodTarget) FinishFields ¶
func (t *MethodTarget) FinishFields(_ vdl.FieldsTarget) error
func (*MethodTarget) StartField ¶
func (t *MethodTarget) StartField(name string) (key, field vdl.Target, _ error)
func (*MethodTarget) StartFields ¶
func (t *MethodTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error)
func (*MethodTarget) ZeroField ¶
func (t *MethodTarget) ZeroField(name string) error
type SortableMethods ¶
type SortableMethods []Method
SortableMethods implements sort.Interface, ordering by method name.
func (SortableMethods) Len ¶
func (s SortableMethods) Len() int
func (SortableMethods) Less ¶
func (s SortableMethods) Less(i, j int) bool
func (SortableMethods) Swap ¶
func (s SortableMethods) Swap(i, j int)