Documentation
¶
Overview ¶
nolint
Index ¶
- func CloneRefOfBool(n *bool) *bool
- func CloneSliceOfInt(n []int) []int
- func EqualsAST(inA, inB AST) bool
- func EqualsBytes(a, b Bytes) bool
- func EqualsInterfaceContainer(a, b InterfaceContainer) bool
- func EqualsInterfaceSlice(a, b InterfaceSlice) bool
- func EqualsLeafSlice(a, b LeafSlice) bool
- func EqualsRefOfBool(a, b *bool) bool
- func EqualsRefOfInterfaceContainer(a, b *InterfaceContainer) bool
- func EqualsRefOfLeaf(a, b *Leaf) bool
- func EqualsRefOfNoCloneType(a, b *NoCloneType) bool
- func EqualsRefOfRefContainer(a, b *RefContainer) bool
- func EqualsRefOfRefSliceContainer(a, b *RefSliceContainer) bool
- func EqualsRefOfSubImpl(a, b *SubImpl) bool
- func EqualsRefOfValueContainer(a, b *ValueContainer) bool
- func EqualsRefOfValueSliceContainer(a, b *ValueSliceContainer) bool
- func EqualsSliceOfAST(a, b []AST) bool
- func EqualsSliceOfInt(a, b []int) bool
- func EqualsSliceOfRefOfLeaf(a, b []*Leaf) bool
- func EqualsSubIface(inA, inB SubIface) bool
- func EqualsValueContainer(a, b ValueContainer) bool
- func EqualsValueSliceContainer(a, b ValueSliceContainer) bool
- func VisitAST(in AST, f Visit) error
- func VisitBasicType(in BasicType, f Visit) error
- func VisitBytes(in Bytes, f Visit) error
- func VisitInterfaceContainer(in InterfaceContainer, f Visit) error
- func VisitInterfaceSlice(in InterfaceSlice, f Visit) error
- func VisitLeafSlice(in LeafSlice, f Visit) error
- func VisitRefOfInterfaceContainer(in *InterfaceContainer, f Visit) error
- func VisitRefOfLeaf(in *Leaf, f Visit) error
- func VisitRefOfNoCloneType(in *NoCloneType, f Visit) error
- func VisitRefOfRefContainer(in *RefContainer, f Visit) error
- func VisitRefOfRefSliceContainer(in *RefSliceContainer, f Visit) error
- func VisitRefOfSubImpl(in *SubImpl, f Visit) error
- func VisitRefOfValueContainer(in *ValueContainer, f Visit) error
- func VisitRefOfValueSliceContainer(in *ValueSliceContainer, f Visit) error
- func VisitSubIface(in SubIface, f Visit) error
- func VisitValueContainer(in ValueContainer, f Visit) error
- func VisitValueSliceContainer(in ValueSliceContainer, f Visit) error
- type AST
- type ApplyFunc
- type BasicType
- type Bytes
- type Cursor
- type InterfaceContainer
- type InterfaceSlice
- type Leaf
- type LeafSlice
- type NoCloneType
- type RefContainer
- type RefSliceContainer
- type SubIface
- type SubImpl
- type ValueContainer
- type ValueSliceContainer
- type Visit
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CloneRefOfBool ¶
CloneRefOfBool creates a deep clone of the input.
func CloneSliceOfInt ¶
CloneSliceOfInt creates a deep clone of the input.
func EqualsBytes ¶
EqualsBytes does deep equals between the two objects.
func EqualsInterfaceContainer ¶
func EqualsInterfaceContainer(a, b InterfaceContainer) bool
EqualsInterfaceContainer does deep equals between the two objects.
func EqualsInterfaceSlice ¶
func EqualsInterfaceSlice(a, b InterfaceSlice) bool
EqualsInterfaceSlice does deep equals between the two objects.
func EqualsLeafSlice ¶
EqualsLeafSlice does deep equals between the two objects.
func EqualsRefOfBool ¶
EqualsRefOfBool does deep equals between the two objects.
func EqualsRefOfInterfaceContainer ¶
func EqualsRefOfInterfaceContainer(a, b *InterfaceContainer) bool
EqualsRefOfInterfaceContainer does deep equals between the two objects.
func EqualsRefOfLeaf ¶
EqualsRefOfLeaf does deep equals between the two objects.
func EqualsRefOfNoCloneType ¶
func EqualsRefOfNoCloneType(a, b *NoCloneType) bool
EqualsRefOfNoCloneType does deep equals between the two objects.
func EqualsRefOfRefContainer ¶
func EqualsRefOfRefContainer(a, b *RefContainer) bool
EqualsRefOfRefContainer does deep equals between the two objects.
func EqualsRefOfRefSliceContainer ¶
func EqualsRefOfRefSliceContainer(a, b *RefSliceContainer) bool
EqualsRefOfRefSliceContainer does deep equals between the two objects.
func EqualsRefOfSubImpl ¶
EqualsRefOfSubImpl does deep equals between the two objects.
func EqualsRefOfValueContainer ¶
func EqualsRefOfValueContainer(a, b *ValueContainer) bool
EqualsRefOfValueContainer does deep equals between the two objects.
func EqualsRefOfValueSliceContainer ¶
func EqualsRefOfValueSliceContainer(a, b *ValueSliceContainer) bool
EqualsRefOfValueSliceContainer does deep equals between the two objects.
func EqualsSliceOfAST ¶
EqualsSliceOfAST does deep equals between the two objects.
func EqualsSliceOfInt ¶
EqualsSliceOfInt does deep equals between the two objects.
func EqualsSliceOfRefOfLeaf ¶
EqualsSliceOfRefOfLeaf does deep equals between the two objects.
func EqualsSubIface ¶
EqualsSubIface does deep equals between the two objects.
func EqualsValueContainer ¶
func EqualsValueContainer(a, b ValueContainer) bool
EqualsValueContainer does deep equals between the two objects.
func EqualsValueSliceContainer ¶
func EqualsValueSliceContainer(a, b ValueSliceContainer) bool
EqualsValueSliceContainer does deep equals between the two objects.
func VisitBasicType ¶
func VisitBytes ¶
func VisitInterfaceContainer ¶
func VisitInterfaceContainer(in InterfaceContainer, f Visit) error
func VisitInterfaceSlice ¶
func VisitInterfaceSlice(in InterfaceSlice, f Visit) error
func VisitLeafSlice ¶
func VisitRefOfInterfaceContainer ¶
func VisitRefOfInterfaceContainer(in *InterfaceContainer, f Visit) error
func VisitRefOfLeaf ¶
func VisitRefOfNoCloneType ¶
func VisitRefOfNoCloneType(in *NoCloneType, f Visit) error
func VisitRefOfRefContainer ¶
func VisitRefOfRefContainer(in *RefContainer, f Visit) error
func VisitRefOfRefSliceContainer ¶
func VisitRefOfRefSliceContainer(in *RefSliceContainer, f Visit) error
func VisitRefOfSubImpl ¶
func VisitRefOfValueContainer ¶
func VisitRefOfValueContainer(in *ValueContainer, f Visit) error
func VisitRefOfValueSliceContainer ¶
func VisitRefOfValueSliceContainer(in *ValueSliceContainer, f Visit) error
func VisitSubIface ¶
func VisitValueContainer ¶
func VisitValueContainer(in ValueContainer, f Visit) error
func VisitValueSliceContainer ¶
func VisitValueSliceContainer(in ValueSliceContainer, f Visit) error
Types ¶
type AST ¶
type AST interface {
String() string
}
These types are used to test the rewriter generator against these types. To recreate them, just run:
go run go/tools/asthelpergen -in ./go/tools/asthelpergen/integration -iface vitess.io/vitess/go/tools/asthelpergen/integration.AST -except "*NoCloneType"
AST is the interface all interface types implement
func CloneSliceOfAST ¶
CloneSliceOfAST creates a deep clone of the input.
type Bytes ¶
type Bytes []byte
We need to support these types - a slice of AST elements can implement the interface
type Cursor ¶
type Cursor struct {
// contains filtered or unexported fields
}
Cursor is cursor
func (*Cursor) Replace ¶
Replace replaces the current node in the parent field with this new object. The user needs to make sure to not replace the object with something of the wrong type, or the visitor will panic.
func (*Cursor) ReplaceAndRevisit ¶ added in v0.13.0
ReplaceAndRevisit replaces the current node in the parent field with this new object. When used, this will abort the visitation of the current node - no post or children visited, and the new node visited.
type InterfaceContainer ¶
type InterfaceContainer struct {
// contains filtered or unexported fields
}
func CloneInterfaceContainer ¶
func CloneInterfaceContainer(n InterfaceContainer) InterfaceContainer
CloneInterfaceContainer creates a deep clone of the input.
func CloneRefOfInterfaceContainer ¶
func CloneRefOfInterfaceContainer(n *InterfaceContainer) *InterfaceContainer
CloneRefOfInterfaceContainer creates a deep clone of the input.
func (InterfaceContainer) String ¶
func (r InterfaceContainer) String() string
type InterfaceSlice ¶
type InterfaceSlice []AST
We need to support these types - a slice of AST elements can implement the interface
func CloneInterfaceSlice ¶
func CloneInterfaceSlice(n InterfaceSlice) InterfaceSlice
CloneInterfaceSlice creates a deep clone of the input.
func (InterfaceSlice) String ¶
func (r InterfaceSlice) String() string
type Leaf ¶
type Leaf struct {
// contains filtered or unexported fields
}
Empty struct impl of the iface
func CloneRefOfLeaf ¶
CloneRefOfLeaf creates a deep clone of the input.
func CloneSliceOfRefOfLeaf ¶
CloneSliceOfRefOfLeaf creates a deep clone of the input.
type LeafSlice ¶
type LeafSlice []*Leaf
func CloneLeafSlice ¶
CloneLeafSlice creates a deep clone of the input.
type NoCloneType ¶
type NoCloneType struct {
// contains filtered or unexported fields
}
func CloneRefOfNoCloneType ¶
func CloneRefOfNoCloneType(n *NoCloneType) *NoCloneType
CloneRefOfNoCloneType creates a deep clone of the input.
func (*NoCloneType) String ¶
func (r *NoCloneType) String() string
type RefContainer ¶
Container implements the interface ByRef
func CloneRefOfRefContainer ¶
func CloneRefOfRefContainer(n *RefContainer) *RefContainer
CloneRefOfRefContainer creates a deep clone of the input.
func (*RefContainer) String ¶
func (r *RefContainer) String() string
type RefSliceContainer ¶
type RefSliceContainer struct { ASTElements []AST NotASTElements []int ASTImplementationElements []*Leaf }
Container implements the interface ByRef
func CloneRefOfRefSliceContainer ¶
func CloneRefOfRefSliceContainer(n *RefSliceContainer) *RefSliceContainer
CloneRefOfRefSliceContainer creates a deep clone of the input.
func (*RefSliceContainer) String ¶
func (r *RefSliceContainer) String() string
type SubIface ¶
type SubIface interface { AST // contains filtered or unexported methods }
We want to support all types that are used as field types, which can include interfaces. Example would be sqlparser.Expr that implements sqlparser.SQLNode
func CloneSubIface ¶
CloneSubIface creates a deep clone of the input.
type SubImpl ¶
type SubImpl struct {
// contains filtered or unexported fields
}
func CloneRefOfSubImpl ¶
CloneRefOfSubImpl creates a deep clone of the input.
type ValueContainer ¶
Container implements the interface ByValue
func CloneRefOfValueContainer ¶
func CloneRefOfValueContainer(n *ValueContainer) *ValueContainer
CloneRefOfValueContainer creates a deep clone of the input.
func CloneValueContainer ¶
func CloneValueContainer(n ValueContainer) ValueContainer
CloneValueContainer creates a deep clone of the input.
func (ValueContainer) String ¶
func (r ValueContainer) String() string
type ValueSliceContainer ¶
type ValueSliceContainer struct { ASTElements []AST NotASTElements []int ASTImplementationElements []*Leaf }
Container implements the interface ByValue
func CloneRefOfValueSliceContainer ¶
func CloneRefOfValueSliceContainer(n *ValueSliceContainer) *ValueSliceContainer
CloneRefOfValueSliceContainer creates a deep clone of the input.
func CloneValueSliceContainer ¶
func CloneValueSliceContainer(n ValueSliceContainer) ValueSliceContainer
CloneValueSliceContainer creates a deep clone of the input.
func (ValueSliceContainer) String ¶
func (r ValueSliceContainer) String() string