Documentation ¶
Index ¶
- Constants
- Variables
- type Capability
- type Set
- func (s *Set) Add(capabs ...Capability)
- func (s *Set) Disable(capabs ...Capability)
- func (s *Set) Empty() bool
- func (s *Set) Enable(capabs ...Capability)
- func (s *Set) Has(capab Capability) bool
- func (s *Set) HasAll(capabs ...Capability) bool
- func (s *Set) Remove(capabs ...Capability)
- func (s *Set) String(version Version, values *Values) string
- func (s *Set) Subtract(other *Set)
- func (s *Set) Union(other *Set)
- type State
- type Values
- type Version
Constants ¶
const ( // LabelTagName is the tag name used for the labeled-response spec. // https://ircv3.net/specs/extensions/labeled-response.html LabelTagName = "draft/label" )
Variables ¶
var (
NoSuchCap = errors.New("Unsupported capability name")
)
Functions ¶
This section is empty.
Types ¶
type Capability ¶
type Capability uint
Capability represents an optional feature that a client may request from the server.
const ( // Acc is the proposed IRCv3 capability named "draft/acc": // https://github.com/ircv3/ircv3-specifications/pull/276 Acc Capability = iota // AccountNotify is the IRCv3 capability named "account-notify": // https://ircv3.net/specs/extensions/account-notify-3.1.html AccountNotify Capability = iota // AccountTag is the IRCv3 capability named "account-tag": // https://ircv3.net/specs/extensions/account-tag-3.2.html AccountTag Capability = iota // AwayNotify is the IRCv3 capability named "away-notify": // https://ircv3.net/specs/extensions/away-notify-3.1.html AwayNotify Capability = iota // Batch is the IRCv3 capability named "batch": // https://ircv3.net/specs/extensions/batch-3.2.html Batch Capability = iota // CapNotify is the IRCv3 capability named "cap-notify": // https://ircv3.net/specs/extensions/cap-notify-3.2.html CapNotify Capability = iota // ChgHost is the IRCv3 capability named "chghost": // https://ircv3.net/specs/extensions/chghost-3.2.html ChgHost Capability = iota // EchoMessage is the IRCv3 capability named "echo-message": // https://ircv3.net/specs/extensions/echo-message-3.2.html EchoMessage Capability = iota // ExtendedJoin is the IRCv3 capability named "extended-join": // https://ircv3.net/specs/extensions/extended-join-3.1.html ExtendedJoin Capability = iota // InviteNotify is the IRCv3 capability named "invite-notify": // https://ircv3.net/specs/extensions/invite-notify-3.2.html InviteNotify Capability = iota // LabeledResponse is the draft IRCv3 capability named "draft/labeled-response": // https://ircv3.net/specs/extensions/labeled-response.html LabeledResponse Capability = iota // Languages is the proposed IRCv3 capability named "draft/languages": // https://gist.github.com/DanielOaks/8126122f74b26012a3de37db80e4e0c6 Languages Capability = iota // MaxLine is the Oragono-specific capability named "oragono.io/maxline-2": // https://oragono.io/maxline-2 MaxLine Capability = iota // MessageTags is the IRCv3 capability named "message-tags": // https://ircv3.net/specs/extensions/message-tags.html MessageTags Capability = iota // MultiPrefix is the IRCv3 capability named "multi-prefix": // https://ircv3.net/specs/extensions/multi-prefix-3.1.html MultiPrefix Capability = iota // Rename is the proposed IRCv3 capability named "draft/rename": // https://github.com/SaberUK/ircv3-specifications/blob/rename/extensions/rename.md Rename Capability = iota // Resume is the proposed IRCv3 capability named "draft/resume-0.5": // https://github.com/DanielOaks/ircv3-specifications/blob/master+resume/extensions/resume.md Resume Capability = iota // SASL is the IRCv3 capability named "sasl": // https://ircv3.net/specs/extensions/sasl-3.2.html SASL Capability = iota // ServerTime is the IRCv3 capability named "server-time": // https://ircv3.net/specs/extensions/server-time-3.2.html ServerTime Capability = iota // SetName is the proposed IRCv3 capability named "draft/setname": // https://github.com/ircv3/ircv3-specifications/pull/361 SetName Capability = iota // STS is the IRCv3 capability named "sts": // https://ircv3.net/specs/extensions/sts.html STS Capability = iota // UserhostInNames is the IRCv3 capability named "userhost-in-names": // https://ircv3.net/specs/extensions/userhost-in-names-3.2.html UserhostInNames Capability = iota // Bouncer is the Oragono-specific capability named "oragono.io/bnc": // https://oragono.io/bnc Bouncer Capability = iota // ZNCSelfMessage is the ZNC vendor capability named "znc.in/self-message": // https://wiki.znc.in/Query_buffers ZNCSelfMessage Capability = iota // EventPlayback is the Proposed IRCv3 capability named "draft/event-playback": // https://github.com/ircv3/ircv3-specifications/pull/362 EventPlayback Capability = iota // ZNCPlayback is the ZNC vendor capability named "znc.in/playback": // https://wiki.znc.in/Playback ZNCPlayback Capability = iota // Nope is the Oragono vendor capability named "oragono.io/nope": // https://oragono.io/nope Nope Capability = iota )
func NameToCapability ¶ added in v0.12.0
func NameToCapability(name string) (result Capability, err error)
func (Capability) Name ¶
func (capability Capability) Name() string
Name returns the name of the given capability.
type Set ¶
type Set [bitsetLen]uint32
Set holds a set of enabled capabilities.
func NewCompleteSet ¶ added in v1.1.0
func NewCompleteSet() *Set
NewCompleteSet returns a new Set, with all defined capabilities enabled.
func NewSet ¶
func NewSet(capabs ...Capability) *Set
NewSet returns a new Set, with the given capabilities enabled.
func (*Set) Add ¶
func (s *Set) Add(capabs ...Capability)
Add adds the given capabilities to this set. this is just a wrapper to allow more clear use.
func (*Set) Disable ¶
func (s *Set) Disable(capabs ...Capability)
Disable disables the given capabilities.
func (*Set) Enable ¶
func (s *Set) Enable(capabs ...Capability)
Enable enables the given capabilities.
func (*Set) Has ¶
func (s *Set) Has(capab Capability) bool
Has returns true if this set has the given capability.
func (*Set) HasAll ¶ added in v1.1.0
func (s *Set) HasAll(capabs ...Capability) bool
HasAll returns true if the set has all the given capabilities.
func (*Set) Remove ¶
func (s *Set) Remove(capabs ...Capability)
Remove removes the given capabilities from this set. this is just a wrapper to allow more clear use.
type State ¶ added in v0.11.0
type State uint
State shows whether we're negotiating caps, finished, etc for connection registration.
const ( // NoneState means CAP hasn't been negotiated at all. NoneState State = iota // NegotiatingState means CAP is being negotiated and registration should be paused. NegotiatingState State = iota // NegotiatedState means CAP negotiation has been successfully ended and reg should complete. NegotiatedState State = iota )
type Values ¶
Values holds capability values.
func (*Values) Get ¶
func (v *Values) Get(capab Capability) (string, bool)
Get returns the value of the given capability, and whether one exists.
func (*Values) Set ¶
func (v *Values) Set(capab Capability, value string)
Set sets the value for the given capability.
func (*Values) Unset ¶
func (v *Values) Unset(capab Capability)
Unset removes the value for the given capability, if it exists.