This repository has been archived on 2022-08-30. You can view files and clone it, but cannot push or open issues or pull requests.
2022-08-10 16:52:20 +00:00
|
|
|
package types
|
|
|
|
|
|
|
|
type Mode int
|
|
|
|
|
|
|
|
const (
|
2022-08-10 18:55:26 +00:00
|
|
|
ModeNone = iota
|
|
|
|
ModeRead
|
2022-08-10 16:52:20 +00:00
|
|
|
ModeWrite
|
|
|
|
)
|
|
|
|
|
|
|
|
type Permission struct {
|
|
|
|
Internal Mode
|
|
|
|
External Mode
|
|
|
|
}
|
2022-08-10 18:55:26 +00:00
|
|
|
|
|
|
|
func ModeFrom (char rune) (mode Mode) {
|
|
|
|
switch (char) {
|
2022-08-11 08:52:16 +00:00
|
|
|
case 'n': mode = ModeNone
|
|
|
|
case 'r': mode = ModeRead
|
2022-08-10 18:55:26 +00:00
|
|
|
case 'w': mode = ModeWrite
|
|
|
|
}
|
|
|
|
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
func PermissionFrom (data string) (permission Permission) {
|
|
|
|
if len(data) != 2 { return }
|
|
|
|
|
|
|
|
permission.Internal = ModeFrom(rune(data[0]))
|
|
|
|
permission.External = ModeFrom(rune(data[1]))
|
|
|
|
return
|
|
|
|
}
|
2022-08-15 18:04:57 +00:00
|
|
|
|
|
|
|
func (mode Mode) ToString () (output string) {
|
|
|
|
switch mode {
|
|
|
|
case ModeNone: output = "n"
|
|
|
|
case ModeRead: output = "r"
|
|
|
|
case ModeWrite: output = "w"
|
|
|
|
}
|
|
|
|
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
func (permission Permission) ToString () (output string) {
|
|
|
|
output += permission.Internal.ToString()
|
|
|
|
output += permission.External.ToString()
|
|
|
|
return
|
|
|
|
}
|