persistent-iproute 0.2.3 → 0.2.4
raw patch · 2 files changed
+16/−7 lines, 2 filesdep ~persistentnew-uploader
Dependency ranges changed: persistent
Files
- Database/Persist/IP.hs +15/−6
- persistent-iproute.cabal +1/−1
Database/Persist/IP.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} -- | This module adds support for some of PostgreSQL operators on IP addresses -- and networks. See <http://www.postgresql.org/docs/9.4/static/functions-net.html>@@ -17,26 +18,34 @@ import Database.Persist.Instances.IP () import Unsafe.Coerce (unsafeCoerce) +#if MIN_VERSION_persistent(2,10,0) +#define VALUE_CONSTRUCTOR FilterValue +#else +#define VALUE_CONSTRUCTOR Left +#endif+ -- | The record range is contained within the specified range. Corresponds to PgSQL operator <<. (<:<.) :: EntityField record IPRange -> IPRange -> Filter record-field <:<. range = Filter field (Left range) (BackendSpecificFilter "<<")+field <:<. range = Filter field (VALUE_CONSTRUCTOR range) (BackendSpecificFilter "<<") -- | The record range contains the specified range. Corresponds to PgSQL operator >>. (>:>.) :: EntityField record IPRange -> IPRange -> Filter record-field >:>. range = Filter field (Left range) (BackendSpecificFilter ">>")+field >:>. range = Filter field (VALUE_CONSTRUCTOR range) (BackendSpecificFilter ">>") -- | The record range is contained within or equals to the specified range. Corresponds to PgSQL operator <<=. (<:<=) :: EntityField record IPRange -> IPRange -> Filter record-field <:<= range = Filter field (Left range) (BackendSpecificFilter "<<=")+field <:<= range = Filter field (VALUE_CONSTRUCTOR range) (BackendSpecificFilter "<<=") -- | The record range contains or equals to the specified range. Corresponds to PgSQL operator >>=. (>:>=) :: EntityField record IPRange -> IPRange -> Filter record-field >:>= range = Filter field (Left range) (BackendSpecificFilter ">>=")+field >:>= range = Filter field (VALUE_CONSTRUCTOR range) (BackendSpecificFilter ">>=") -- | The record address is contained within the specified range. Corresponds to PgSQL operator <<. (<.<.) :: EntityField record IP -> IPRange -> Filter record-field <.<. range = Filter (unsafeCoerce field :: EntityField record IPRange) (Left range) (BackendSpecificFilter "<<")+field <.<. range = Filter (unsafeCoerce field :: EntityField record IPRange) (VALUE_CONSTRUCTOR range) (BackendSpecificFilter "<<") -- | The record range contains the specified address. Corresponds to PgSQL operator >>. (>.>.) :: EntityField record IPRange -> IP -> Filter record-field >.>. ip = Filter (unsafeCoerce field :: EntityField record IP) (Left ip) (BackendSpecificFilter ">>")+field >.>. ip = Filter (unsafeCoerce field :: EntityField record IP) (VALUE_CONSTRUCTOR ip) (BackendSpecificFilter ">>")++#undef VALUE_CONSTRUCTOR
persistent-iproute.cabal view
@@ -1,5 +1,5 @@ name: persistent-iproute-version: 0.2.3+version: 0.2.4 synopsis: Persistent instances for types in iproute description: Persistent instances and operators for types in iproute to use with PostgreSQL. license: BSD3