podman

Форк
0
87 строк · 1.8 Кб
1
// Copyright 2015 go-swagger maintainers
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//    http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14

15
package swag
16

17
import "unicode"
18

19
type (
20
	nameLexem interface {
21
		GetUnsafeGoName() string
22
		GetOriginal() string
23
		IsInitialism() bool
24
	}
25

26
	initialismNameLexem struct {
27
		original          string
28
		matchedInitialism string
29
	}
30

31
	casualNameLexem struct {
32
		original string
33
	}
34
)
35

36
func newInitialismNameLexem(original, matchedInitialism string) *initialismNameLexem {
37
	return &initialismNameLexem{
38
		original:          original,
39
		matchedInitialism: matchedInitialism,
40
	}
41
}
42

43
func newCasualNameLexem(original string) *casualNameLexem {
44
	return &casualNameLexem{
45
		original: original,
46
	}
47
}
48

49
func (l *initialismNameLexem) GetUnsafeGoName() string {
50
	return l.matchedInitialism
51
}
52

53
func (l *casualNameLexem) GetUnsafeGoName() string {
54
	var first rune
55
	var rest string
56
	for i, orig := range l.original {
57
		if i == 0 {
58
			first = orig
59
			continue
60
		}
61
		if i > 0 {
62
			rest = l.original[i:]
63
			break
64
		}
65
	}
66
	if len(l.original) > 1 {
67
		return string(unicode.ToUpper(first)) + lower(rest)
68
	}
69

70
	return l.original
71
}
72

73
func (l *initialismNameLexem) GetOriginal() string {
74
	return l.original
75
}
76

77
func (l *casualNameLexem) GetOriginal() string {
78
	return l.original
79
}
80

81
func (l *initialismNameLexem) IsInitialism() bool {
82
	return true
83
}
84

85
func (l *casualNameLexem) IsInitialism() bool {
86
	return false
87
}
88

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.