package coreinstruction import ( "regexp" "strings" "gitlab.com/evatix-go/core/internal/utilstringinternal" ) type BaseUsername struct { Username string `json:"Username"` } func NewUsername(user string) *BaseUsername { return &BaseUsername{Username: user} } func (it *BaseUsername) UsernameString() string { return it.Username } func (it *BaseUsername) IsUsernameEmpty() bool { return it == nil || it.Username == "" } func (it *BaseUsername) IsUsernameWhitespace() bool { return it == nil || utilstringinternal.IsNullOrEmptyOrWhitespace(&it.Username) } func (it *BaseUsername) IsUsername(user string) bool { return it.Username == user } func (it *BaseUsername) IsUsernameCaseInsensitive(usernameInsensitive string) bool { return strings.EqualFold(it.Username, usernameInsensitive) } func (it *BaseUsername) IsUsernameContains(usernameContains string) bool { return strings.Contains(it.Username, usernameContains) } func (it *BaseUsername) IsUsernameRegexMatches(regex *regexp.Regexp) bool { return regex.MatchString(it.Username) } func (it *BaseUsername) IsEqual(right *BaseUsername) bool { if it == nil && right == nil { return true } if it == nil || right == nil { return false } return it.Username == right.Username } func (it *BaseUsername) IsNotEqual(right *BaseUsername) bool { return !it.IsEqual(right) } func (it *BaseUsername) ClonePtr() *BaseUsername { if it == nil { return nil } return &BaseUsername{ Username: it.Username, } } func (it BaseUsername) Clone() BaseUsername { return BaseUsername{ Username: it.Username, } }