2
0
Files
pgx/pgtype/range_types.go.erb
T
2022-02-02 08:40:42 -06:00

50 lines
1011 B
Plaintext

package pgtype
<%
[
["Int4range", "Int4"],
["Int8range", "Int8"],
["Numrange", "Numeric"],
["Tsrange", "Timestamp"],
["Tstzrange", "Timestamptz"],
["Daterange", "Date"]
].each do |range_type, element_type|
%>
type <%= range_type %> struct {
Lower <%= element_type %>
Upper <%= element_type %>
LowerType BoundType
UpperType BoundType
Valid bool
}
func (r <%= range_type %>) IsNull() bool {
return !r.Valid
}
func (r <%= range_type %>) BoundTypes() (lower, upper BoundType) {
return r.LowerType, r.UpperType
}
func (r <%= range_type %>) Bounds() (lower, upper interface{}) {
return &r.Lower, &r.Upper
}
func (r *<%= range_type %>) ScanNull() error {
*r = <%= range_type %>{}
return nil
}
func (r *<%= range_type %>) ScanBounds() (lowerTarget, upperTarget interface{}) {
return &r.Lower, &r.Upper
}
func (r *<%= range_type %>) SetBoundTypes(lower, upper BoundType) error {
r.LowerType = lower
r.UpperType = upper
r.Valid = true
return nil
}
<% end %>