Copyright | 2015-2018 Kei Hibino |
---|---|
License | BSD3 |
Maintainer | ex8k.hibino@gmail.com |
Stability | experimental |
Portability | unknown |
Safe Haskell | Safe |
Language | Haskell2010 |
This module defines network-address types of PostgreSQL. http://www.postgresql.org/docs/current/static/datatype-net-types.html
- newtype Inet = Inet NetAddress
- newtype Cidr = Cidr NetAddress
- cidr4 :: V4HostAddress -> Word8 -> Maybe Cidr
- cidr4' :: V4HostAddress -> Word8 -> Maybe Cidr
- cidr6 :: V6HostAddress -> Word8 -> Maybe Cidr
- cidr6' :: V6HostAddress -> Word8 -> Maybe Cidr
- data NetAddress
- netAddress4 :: V4HostAddress -> Word8 -> Maybe NetAddress
- netAddress6 :: V6HostAddress -> Word8 -> Maybe NetAddress
- data V4HostAddress = V4HostAddress !Word8 !Word8 !Word8 !Word8
- v4HostAddressOctets :: V4HostAddress -> (Word8, Word8, Word8, Word8)
- data V6HostAddress = V6HostAddress !Word16 !Word16 !Word16 !Word16 !Word16 !Word16 !Word16 !Word16
- v6HostAddressLong :: Word16 -> Word16 -> Word16 -> Word16 -> Word16 -> Word16 -> Word16 -> Word16 -> V6HostAddress
- v6HostAddressWords :: V6HostAddress -> (Word16, Word16, Word16, Word16, Word16, Word16, Word16, Word16)
- v6HostAddress :: [Word16] -> [Word16] -> Maybe V6HostAddress
- v6HostAddressL :: [Word16] -> Maybe V6HostAddress
- v6HostAddressR :: [Word16] -> Maybe V6HostAddress
Definitions about inet and cidr types
Corresponding to INET type of PostgreSQL
Corresponding to CIDR type of PostgreSQL
cidr4 :: V4HostAddress -> Word8 -> Maybe Cidr Source #
Make Cidr type of IPv4 from host-address bits consistent with mask
cidr4' :: V4HostAddress -> Word8 -> Maybe Cidr Source #
Same as cidr4 except for dropping host-address bits along with mask
cidr6 :: V6HostAddress -> Word8 -> Maybe Cidr Source #
Make Cidr type of IPv6 from host-address bits consistent with mask
cidr6' :: V6HostAddress -> Word8 -> Maybe Cidr Source #
Same as cidr6 except for dropping host-address bits along with mask
Definitions about the address type which is the pair of host-address and mask
data NetAddress Source #
:: V4HostAddress | IPv4 host-address |
-> Word8 | IPv4 mask 0-32 |
-> Maybe NetAddress | result NetAddress |
Make IPv4 NetAddress type consistent with IPv4 mask
:: V6HostAddress | IPv6 host-address |
-> Word8 | IPv6 mask 0-128 |
-> Maybe NetAddress | result NetAddress |
Make IPv6 NetAddress type consistent with IPv6 mask
Definitions about the host-address types
data V4HostAddress Source #
Host address type along with IPv4 address bytes with IPv4 string order.
v4HostAddressOctets :: V4HostAddress -> (Word8, Word8, Word8, Word8) Source #
data V6HostAddress Source #
Host address type along with IPv6 address words with IPv6 string order.
Each Word16
value is host byte order.
Host byte order is portable in programs on its own host.
Network byte order is only needed, when communicating other hosts.
v6HostAddressLong :: Word16 -> Word16 -> Word16 -> Word16 -> Word16 -> Word16 -> Word16 -> Word16 -> V6HostAddress Source #
v6HostAddressWords :: V6HostAddress -> (Word16, Word16, Word16, Word16, Word16, Word16, Word16, Word16) Source #
v6HostAddress :: [Word16] -> [Word16] -> Maybe V6HostAddress Source #
v6HostAddressL :: [Word16] -> Maybe V6HostAddress Source #
v6HostAddressR :: [Word16] -> Maybe V6HostAddress Source #