12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- // Copyright (c) 2017 Ernest Micklei
- //
- // MIT License
- //
- // Permission is hereby granted, free of charge, to any person obtaining
- // a copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to
- // permit persons to whom the Software is furnished to do so, subject to
- // the following conditions:
- //
- // The above copyright notice and this permission notice shall be
- // included in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- package proto
- // Visitor is for dispatching Proto elements.
- type Visitor interface {
- //VisitProto(p *Proto)
- VisitMessage(m *Message)
- VisitService(v *Service)
- VisitSyntax(s *Syntax)
- VisitPackage(p *Package)
- VisitOption(o *Option)
- VisitImport(i *Import)
- VisitNormalField(i *NormalField)
- VisitEnumField(i *EnumField)
- VisitEnum(e *Enum)
- VisitComment(e *Comment)
- VisitOneof(o *Oneof)
- VisitOneofField(o *OneOfField)
- VisitReserved(r *Reserved)
- VisitRPC(r *RPC)
- VisitMapField(f *MapField)
- // proto2
- VisitGroup(g *Group)
- VisitExtensions(e *Extensions)
- }
- // Visitee is implemented by all Proto elements.
- type Visitee interface {
- Accept(v Visitor)
- parent(e Visitee)
- }
- // Documented is for types that may have an associated comment (not inlined).
- type Documented interface {
- Doc() *Comment
- }
|