package corerange import ( "fmt" "gitlab.com/evatix-go/core/constants" ) type StartEndInt struct { Start int `json:"Start"` End int `json:"End"` } func (it *StartEndInt) IsInvalidStart() bool { return it == nil || it.Start <= 0 } func (it *StartEndInt) IsStartEndBothDefined() bool { return it != nil && it.HasStart() && it.HasEnd() } func (it *StartEndInt) IsInvalidStartEndBoth() bool { return it.IsInvalidStart() && it.IsInvalidEnd() } func (it *StartEndInt) IsInvalidAnyStartEnd() bool { return it.IsInvalidStart() || it.IsInvalidEnd() } func (it *StartEndInt) IsStartGraterThan(val int) bool { return it != nil && it.Start > val } func (it *StartEndInt) IsEndGraterThan(val int) bool { return it != nil && it.End > val } func (it *StartEndInt) HasStart() bool { return it != nil && it.Start > 0 } func (it *StartEndInt) IsInvalidEnd() bool { return it == nil || it.End <= 0 } func (it *StartEndInt) HasEnd() bool { return it != nil && it.End > 0 } func (it *StartEndInt) StringUsingFormat(format string) string { return fmt.Sprintf(format, it.Start, it.End) } func (it *StartEndInt) StringSpace() string { return fmt.Sprintf("%d %d", it.Start, it.End) } func (it *StartEndInt) StringHyphen() string { return fmt.Sprintf("%d-%d", it.Start, it.End) } func (it *StartEndInt) StringColon() string { return fmt.Sprintf("%d:%d", it.Start, it.End) } func (it *StartEndInt) RangeInt(minMax *MinMaxInt) *RangeInt { return NewRangeInt(it.StringColon(), constants.Colon, minMax) } func (it *StartEndInt) RangeInt16(minMax *MinMaxInt16) *RangeInt16 { return NewRangeInt16(it.StringColon(), constants.Colon, minMax) } func (it *StartEndInt) RangeInt8(minMax *MinMaxInt8) *RangeInt8 { return NewRangeInt8(it.StringColon(), constants.Colon, minMax) }