enhance(types):增加若干常用方法。

This commit is contained in:
徐涛 2023-06-16 08:36:11 +08:00
parent 2c303cfba7
commit b244fd5823
2 changed files with 64 additions and 0 deletions

View File

@ -14,6 +14,18 @@ type DateRange struct {
pgtype.Range[Date] pgtype.Range[Date]
} }
func NewEmptyDateRange() DateRange {
return DateRange{
Range: pgtype.Range[Date]{
Lower: MinDate(),
LowerType: pgtype.Unbounded,
Upper: MaxDate(),
UpperType: pgtype.Unbounded,
Valid: true,
},
}
}
func NewDateRange(lower *Date, upper *Date) DateRange { func NewDateRange(lower *Date, upper *Date) DateRange {
return DateRange{ return DateRange{
Range: pgtype.Range[Date]{ Range: pgtype.Range[Date]{
@ -78,3 +90,23 @@ func (dr *DateRange) UnmarshalJSON(data []byte) error {
dr.Range = r dr.Range = r
return nil return nil
} }
func (dr *DateRange) SetLower(lower Date, bound pgtype.BoundType) {
dr.Range.Lower = lower
dr.Range.LowerType = bound
}
func (dr *DateRange) SetLowerUnbounded() {
dr.Range.Lower = MinDate()
dr.Range.LowerType = pgtype.Unbounded
}
func (dr *DateRange) SetUpper(upper Date, bound pgtype.BoundType) {
dr.Range.Upper = upper
dr.Range.UpperType = bound
}
func (dr *DateRange) SetUpperUnbounded() {
dr.Range.Upper = MaxDate()
dr.Range.UpperType = pgtype.Unbounded
}

View File

@ -14,6 +14,18 @@ type DateTimeRange struct {
pgtype.Range[DateTime] pgtype.Range[DateTime]
} }
func NewEmptyDateTimeRange() DateTimeRange {
return DateTimeRange{
Range: pgtype.Range[DateTime]{
Lower: MinDateTime(),
LowerType: pgtype.Unbounded,
Upper: MaxDateTime(),
UpperType: pgtype.Unbounded,
Valid: true,
},
}
}
func NewDateTimeRange(lower *DateTime, upper *DateTime) DateTimeRange { func NewDateTimeRange(lower *DateTime, upper *DateTime) DateTimeRange {
return DateTimeRange{ return DateTimeRange{
Range: pgtype.Range[DateTime]{ Range: pgtype.Range[DateTime]{
@ -78,3 +90,23 @@ func (dr *DateTimeRange) UnmarshalJSON(data []byte) error {
dr.Range = r dr.Range = r
return nil return nil
} }
func (dr *DateTimeRange) SetLower(lower DateTime, bound pgtype.BoundType) {
dr.Range.Lower = lower
dr.Range.LowerType = bound
}
func (dr *DateTimeRange) SetLowerUnbounded() {
dr.Range.Lower = MinDateTime()
dr.Range.LowerType = pgtype.Unbounded
}
func (dr *DateTimeRange) SetUpper(upper DateTime, bound pgtype.BoundType) {
dr.Range.Upper = upper
dr.Range.UpperType = bound
}
func (dr *DateTimeRange) SetUpperUnbounded() {
dr.Range.Upper = MaxDateTime()
dr.Range.UpperType = pgtype.Unbounded
}