mirror of
https://github.com/golang/go
synced 2024-11-26 14:08:37 -07:00
text/template: add an unexported method to Node
Protects the package a little against undesirable clients. R=golang-dev, bradfitz, rsc CC=golang-dev https://golang.org/cl/6624054
This commit is contained in:
parent
bbccfddb84
commit
421b75c0db
@ -13,7 +13,9 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
// A node is an element in the parse tree. The interface is trivial.
|
// A Node is an element in the parse tree. The interface is trivial.
|
||||||
|
// The interface contains an unexported method so that only
|
||||||
|
// types local to this package can satisfy it.
|
||||||
type Node interface {
|
type Node interface {
|
||||||
Type() NodeType
|
Type() NodeType
|
||||||
String() string
|
String() string
|
||||||
@ -22,6 +24,8 @@ type Node interface {
|
|||||||
// CopyXxx methods that return *XxxNode.
|
// CopyXxx methods that return *XxxNode.
|
||||||
Copy() Node
|
Copy() Node
|
||||||
Position() Pos // byte position of start of node in full original input string
|
Position() Pos // byte position of start of node in full original input string
|
||||||
|
// Make sure only functions in this package can create Nodes.
|
||||||
|
unexported()
|
||||||
}
|
}
|
||||||
|
|
||||||
// NodeType identifies the type of a parse tree node.
|
// NodeType identifies the type of a parse tree node.
|
||||||
@ -35,6 +39,11 @@ func (p Pos) Position() Pos {
|
|||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// unexported keeps Node implementations local to the package.
|
||||||
|
// All implementations embed Pos, so this takes care of it.
|
||||||
|
func (Pos) unexported() {
|
||||||
|
}
|
||||||
|
|
||||||
// Type returns itself and provides an easy default implementation
|
// Type returns itself and provides an easy default implementation
|
||||||
// for embedding in a Node. Embedded in all non-trivial Nodes.
|
// for embedding in a Node. Embedded in all non-trivial Nodes.
|
||||||
func (t NodeType) Type() NodeType {
|
func (t NodeType) Type() NodeType {
|
||||||
|
Loading…
Reference in New Issue
Block a user