string.go 767 B

123456789101112131415161718192021222324252627282930313233343536
  1. package serial
  2. import (
  3. "strings"
  4. )
  5. // An interface for any objects that has string presentation.
  6. type String interface {
  7. String() string
  8. }
  9. type StringLiteral string
  10. func NewStringLiteral(str String) StringLiteral {
  11. return StringLiteral(str.String())
  12. }
  13. func (this StringLiteral) Contains(str String) bool {
  14. return strings.Contains(this.String(), str.String())
  15. }
  16. func (this StringLiteral) String() string {
  17. return string(this)
  18. }
  19. func (this StringLiteral) ToLower() StringLiteral {
  20. return StringLiteral(strings.ToLower(string(this)))
  21. }
  22. func (this StringLiteral) ToUpper() StringLiteral {
  23. return StringLiteral(strings.ToUpper(string(this)))
  24. }
  25. func (this StringLiteral) TrimSpace() StringLiteral {
  26. return StringLiteral(strings.TrimSpace(string(this)))
  27. }