Documentation
¶
Overview ¶
Package resourcename implements simple functions to manipulate UTF-8 encoded AIP resource names.
Index ¶
- Constants
- func Ancestor(name, pattern string) (string, bool)
- func ContainsWildcard(name string) bool
- func Descendant(name, pattern string) (string, bool)
- func HasParent(name, parent string) bool
- func Match(pattern, name string) bool
- func RangeParents(name string, fn func(parent string) bool)
- func Sprint(pattern string, variables ...string) string
- func Sscan(name, pattern string, variables ...*string) (err error)
- func Validate(name string) error
- func ValidatePattern(pattern string) error
- type Literal
- type Scanner
- type Segment
Constants ¶
const RevisionSeparator = '@'
RevisionSeparator is the separator character used to separate resource IDs from revision IDs.
const Wildcard = "-"
Wildcard is the resource name wildcard character "-".
Variables ¶
This section is empty.
Functions ¶
func Ancestor ¶
Ancestor extracts an ancestor from the provided name, using a pattern for the ancestor.
func ContainsWildcard ¶
ContainsWildcard reports whether the specified resource name contains any wildcard segments.
func Descendant ¶ added in v0.0.4
Descendant extracts an descendant from the provided parent, using a pattern for the descendant.
func HasParent ¶
HasParent tests whether name has the specified parent. Wildcard segments (-) are considered. Resource names without revisions are considered parents of the same resource name with a revision.
func Match ¶
Match reports whether the specified resource name matches the specified resource name pattern.
func RangeParents ¶
RangeParents iterates over all parents of the provided resource name. The iteration order is from root ancestor down to the closest parent. Collection segments are included in the iteration, to not require knowing the pattern. For full resource names, the service is omitted.
func Sprint ¶
Sprint formats resource name variables according to a pattern and returns the resulting string.
func Sscan ¶
Sscan scans a resource name, storing successive segments into successive variables as determined by the provided pattern.
func Validate ¶
Validate that a resource name conforms to the restrictions outlined in AIP-122. See: https://google.aip.dev/122
func ValidatePattern ¶
ValidatePattern that a resource name pattern conforms to the restrictions outlined in AIP-122. See: https://google.aip.dev/122
Types ¶
type Literal ¶
type Literal string
Literal is the literal part of a resource name segment.
EBNF
Literal = RESOURCE_ID | RevisionLiteral ; RevisionLiteral = RESOURCE_ID "@" REVISION_ID ;
func (Literal) HasRevision ¶
HasRevision returns true if the literal has a valid revision.
func (Literal) ResourceID ¶
ResourceID returns the literal's resource ID.
func (Literal) RevisionID ¶
RevisionID returns the literal's revision ID.
type Scanner ¶
type Scanner struct {
// contains filtered or unexported fields
}
Scanner scans a resource name.
func (*Scanner) ServiceName ¶
ServiceName returns the service name, when the scanner has detected a full resource name.
type Segment ¶
type Segment string
Segment is a segment of a resource name or a resource name pattern.
EBNF
Segment = Literal | Variable ; Variable = "{" Literal "}" ;
func (Segment) IsVariable ¶
IsVariable reports whether the segment is a variable segment.
func (Segment) IsWildcard ¶
IsWildcard reports whether the segment is a wildcard.