-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Persistent instances for types in iproute
--   
--   Persistent instances and operators for types in iproute to use with
--   PostgreSQL.
@package persistent-iproute
@version 0.2.3


-- | This module adds support for some of PostgreSQL operators on IP
--   addresses and networks. See
--   <a>http://www.postgresql.org/docs/9.4/static/functions-net.html</a>
--   for more detailed documentation
module Database.Persist.IP

-- | The record range is contained within the specified range. Corresponds
--   to PgSQL operator &lt;&lt;.
(<:<.) :: EntityField record IPRange -> IPRange -> Filter record

-- | The record range contains the specified range. Corresponds to PgSQL
--   operator &gt;&gt;.
(>:>.) :: EntityField record IPRange -> IPRange -> Filter record

-- | The record range is contained within or equals to the specified range.
--   Corresponds to PgSQL operator &lt;&lt;=.
(<:<=) :: EntityField record IPRange -> IPRange -> Filter record

-- | The record range contains or equals to the specified range.
--   Corresponds to PgSQL operator &gt;&gt;=.
(>:>=) :: EntityField record IPRange -> IPRange -> Filter record

-- | The record address is contained within the specified range.
--   Corresponds to PgSQL operator &lt;&lt;.
(<.<.) :: EntityField record IP -> IPRange -> Filter record

-- | The record range contains the specified address. Corresponds to PgSQL
--   operator &gt;&gt;.
(>.>.) :: EntityField record IPRange -> IP -> Filter record

-- | A unified IP data for <a>IP</a> and <a>IP</a>. To create this, use the
--   data constructors. Or use <a>read</a> <tt>"192.0.2.1"</tt> ::
--   <a>IP</a>, for example. Also, <tt>"192.0.2.1"</tt> can be used as
--   literal with OverloadedStrings.
--   
--   <pre>
--   &gt;&gt;&gt; (read "192.0.2.1" :: IP) == IPv4 (read "192.0.2.1" :: IPv4)
--   True
--   
--   &gt;&gt;&gt; (read "2001:db8:00:00:00:00:00:01" :: IP) == IPv6 (read "2001:db8:00:00:00:00:00:01" :: IPv6)
--   True
--   </pre>
data IP

-- | A unified data for <a>AddrRange</a> <a>IP</a> and <a>AddrRange</a>
--   <a>IP</a>. To create this, use <a>read</a> <tt>"192.0.2.0/24"</tt> ::
--   <a>IPRange</a>. Also, <tt>"192.0.2.0/24"</tt> can be used as literal
--   with OverloadedStrings.
--   
--   <pre>
--   &gt;&gt;&gt; (read "192.0.2.1/24" :: IPRange) == IPv4Range (read "192.0.2.0/24" :: AddrRange IPv4)
--   True
--   
--   &gt;&gt;&gt; (read "2001:db8:00:00:00:00:00:01/48" :: IPRange) == IPv6Range (read "2001:db8:00:00:00:00:00:01/48" :: AddrRange IPv6)
--   True
--   </pre>
data IPRange
