Skip to content
Snippets Groups Projects
Select Git revision
  • feature/v1.3.60
  • develop default protected
  • main protected
  • release/v1.0.7
  • release/v1.0.0
  • feature/v0.9.5
  • release/v0.6.2
  • hotfix/v0.5.7
  • release/v0.5.6
  • release/v0.5.5
  • hotfix/v0.5.4
  • hotfix/v0.5.3
  • hotfix/v0.5.2
  • release/v0.5.1
  • hotfix/v0.5.0
  • hotfix/v0.4.9
  • hotfix/v0.4.8
  • hotfix/v0.4.7
  • release/v0.4.6
  • hotfix/v0.4.5
  • v1.3.55
  • v1.3.52
  • v1.3.50
  • v1.3.45
  • v1.3.42
  • v1.3.41
  • v1.3.40
  • v1.3.38
  • v1.3.37
  • v1.3.36
  • v1.3.35
  • v1.3.34
  • v1.3.33
  • v1.3.32
  • v1.3.31
  • v1.3.30
  • v1.3.29
  • v1.3.28
  • v1.3.27
  • v1.3.26
40 results

LeftMiddleRight.go

LeftMiddleRight.go 1.98 KiB
package corestr

import (
	"strings"

	"gitlab.com/evatix-go/core/constants"
	"gitlab.com/evatix-go/core/internal/strutilinternal"
)

type LeftMiddleRight struct {
	LeftRight
	Middle string
}

func InvalidLeftMiddleRightNoMessage() *LeftMiddleRight {
	return &LeftMiddleRight{
		LeftRight: LeftRight{
			Left:    constants.EmptyString,
			Right:   constants.EmptyString,
			IsValid: false,
			Message: constants.EmptyString,
		},
		Middle: constants.EmptyString,
	}
}

func InvalidLeftMiddleRight(message string) *LeftMiddleRight {
	return &LeftMiddleRight{
		LeftRight: LeftRight{
			Left:    constants.EmptyString,
			Right:   constants.EmptyString,
			IsValid: false,
			Message: message,
		},
		Middle: constants.EmptyString,
	}
}

func (receiver *LeftMiddleRight) MiddleTrim() string {
	return strings.TrimSpace(receiver.Middle)
}

func (receiver *LeftMiddleRight) MiddleBytes() []byte {
	return []byte(receiver.Middle)
}

func (receiver *LeftMiddleRight) IsMiddleEmpty() bool {
	return receiver.Middle == ""
}

func (receiver *LeftMiddleRight) IsMiddleWhitespace() bool {
	return strutilinternal.IsEmptyOrWhitespace(receiver.Middle)
}

func (receiver *LeftMiddleRight) HasValidNonEmptyMiddle() bool {
	return receiver.IsValid && !receiver.IsMiddleEmpty()
}

func (receiver *LeftMiddleRight) HasValidNonWhitespaceMiddle() bool {
	return receiver.IsValid && !receiver.IsMiddleWhitespace()
}

// HasSafeNonEmpty receiver.IsValid &&
//		!receiver.IsLeftEmpty() &&
//		!receiver.IsMiddleEmpty() &&
//		!receiver.IsRightEmpty()
func (receiver *LeftMiddleRight) HasSafeNonEmpty() bool {
	return receiver.IsValid &&
		!receiver.IsLeftEmpty() &&
		!receiver.IsMiddleEmpty() &&
		!receiver.IsRightEmpty()
}

func (receiver *LeftMiddleRight) IsAll(left, mid, right string) bool {
	return receiver.Left == left &&
		receiver.Right == right &&
		receiver.Middle == mid
}

func (receiver *LeftMiddleRight) Clone() *LeftMiddleRight {
	return &LeftMiddleRight{
		LeftRight: *receiver.LeftRight.Clone(),
		Middle:    receiver.Middle,
	}
}