reprogl

Форк
0
/
model.go 
44 строки · 825.0 Байт
1
package hashid
2

3
type HashData struct {
4
	ID      int
5
	Hash    string
6
	options Option
7
}
8

9
func (h *HashData) IsUser() bool {
10
	return h.hasUserBit()
11
}
12

13
func (h *HashData) IsMale() bool {
14
	return h.hasMaleBit()
15
}
16

17
func (h *HashData) hasUserBit() bool {
18
	i := int(h.options)
19

20
	return i-((i>>1)<<1) == 1
21
}
22

23
func (h *HashData) hasCommentatorBit() bool {
24
	i := int(h.options)
25

26
	return (i>>1)-((i>>2)<<1) == 1
27
}
28

29
func (h *HashData) hasMaleBit() bool {
30
	i := int(h.options)
31

32
	return (i>>2)-((i>>3)<<1) == 1
33
}
34

35
func (h *HashData) hasFemaleBit() bool {
36
	i := int(h.options)
37

38
	return (i>>3)-((i>>4)<<1) == 1
39
}
40

41
func (h *HashData) validOptions() bool {
42
	return ((h.hasUserBit() && !h.hasCommentatorBit()) || (!h.hasUserBit() && h.hasCommentatorBit())) &&
43
		((h.hasMaleBit() && !h.hasFemaleBit()) || (!h.hasMaleBit() && h.hasFemaleBit()))
44
}
45

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

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

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

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