You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
689 B
22 lines
689 B
3 years ago
|
// Copyright 2018 by David A. Golden. All rights reserved.
|
||
|
//
|
||
|
// Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||
|
// not use this file except in compliance with the License. You may obtain
|
||
|
// a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
||
|
|
||
|
package stringprep
|
||
|
|
||
|
// Mapping represents a stringprep mapping, from a single rune to zero or more
|
||
|
// runes.
|
||
|
type Mapping map[rune][]rune
|
||
|
|
||
|
// Map maps a rune to a (possibly empty) rune slice via a stringprep Mapping.
|
||
|
// The ok return value is false if the rune was not found.
|
||
|
func (m Mapping) Map(r rune) (replacement []rune, ok bool) {
|
||
|
rs, ok := m[r]
|
||
|
if !ok {
|
||
|
return nil, false
|
||
|
}
|
||
|
return rs, true
|
||
|
}
|