forked from External/ergo
mark unicode normalization with type
This commit is contained in:
parent
97886dd00f
commit
96a108f8da
12 changed files with 324 additions and 269 deletions
20
irc/types.go
20
irc/types.go
|
|
@ -67,7 +67,7 @@ type ReplyCode interface {
|
|||
String() string
|
||||
}
|
||||
|
||||
type StringCode string
|
||||
type StringCode Name
|
||||
|
||||
func (code StringCode) String() string {
|
||||
return string(code)
|
||||
|
|
@ -86,25 +86,25 @@ func (mode ChannelMode) String() string {
|
|||
return string(mode)
|
||||
}
|
||||
|
||||
type ChannelNameMap map[string]*Channel
|
||||
type ChannelNameMap map[Name]*Channel
|
||||
|
||||
func (channels ChannelNameMap) Get(name string) *Channel {
|
||||
return channels[strings.ToLower(name)]
|
||||
func (channels ChannelNameMap) Get(name Name) *Channel {
|
||||
return channels[name.ToLower()]
|
||||
}
|
||||
|
||||
func (channels ChannelNameMap) Add(channel *Channel) error {
|
||||
if channels[channel.name] != nil {
|
||||
if channels[channel.name.ToLower()] != nil {
|
||||
return fmt.Errorf("%s: already set", channel.name)
|
||||
}
|
||||
channels[channel.name] = channel
|
||||
channels[channel.name.ToLower()] = channel
|
||||
return nil
|
||||
}
|
||||
|
||||
func (channels ChannelNameMap) Remove(channel *Channel) error {
|
||||
if channel != channels[channel.name] {
|
||||
if channel != channels[channel.name.ToLower()] {
|
||||
return fmt.Errorf("%s: mismatch", channel.name)
|
||||
}
|
||||
delete(channels, channel.name)
|
||||
delete(channels, channel.name.ToLower())
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -182,8 +182,8 @@ func (channels ChannelSet) First() *Channel {
|
|||
//
|
||||
|
||||
type Identifier interface {
|
||||
Id() string
|
||||
Nick() string
|
||||
Id() Name
|
||||
Nick() Name
|
||||
}
|
||||
|
||||
type Replier interface {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue