Safe Haskell | None |
---|---|
Language | Haskell2010 |
Net.Types
Description
This module re-exports all of the thematic types that this library defines.
Synopsis
- newtype IPv4 = IPv4 {}
- newtype IPv6 = IPv6 {}
- newtype IP = IP {}
- data IPv4Range = IPv4Range {
- ipv4RangeBase :: !IPv4
- ipv4RangeLength :: !Word8
- data IPv6Range = IPv6Range {
- ipv6RangeBase :: !IPv6
- ipv6RangeLength :: !Word8
- newtype Mac = Mac Word64
- data MacCodec = MacCodec {}
- data MacGrouping
Documentation
A 32-bit Internet Protocol version 4 address. To use this with the
network
library, it is necessary to use Network.Socket.htonl
to
convert the underlying Word32
from host byte order to network byte
order.
Instances
FromJSON IPv4 # | |
FromJSONKey IPv4 # | |
Defined in Net.IPv4 | |
ToJSON IPv4 # | |
ToJSONKey IPv4 # | |
Defined in Net.IPv4 | |
NFData IPv4 # | |
Bits IPv4 # | |
Defined in Net.IPv4 Methods (.&.) :: IPv4 -> IPv4 -> IPv4 # (.|.) :: IPv4 -> IPv4 -> IPv4 # complement :: IPv4 -> IPv4 # shift :: IPv4 -> Int -> IPv4 # rotate :: IPv4 -> Int -> IPv4 # setBit :: IPv4 -> Int -> IPv4 # clearBit :: IPv4 -> Int -> IPv4 # complementBit :: IPv4 -> Int -> IPv4 # testBit :: IPv4 -> Int -> Bool # bitSizeMaybe :: IPv4 -> Maybe Int # shiftL :: IPv4 -> Int -> IPv4 # unsafeShiftL :: IPv4 -> Int -> IPv4 # shiftR :: IPv4 -> Int -> IPv4 # unsafeShiftR :: IPv4 -> Int -> IPv4 # rotateL :: IPv4 -> Int -> IPv4 # | |
FiniteBits IPv4 # | |
Defined in Net.IPv4 Methods finiteBitSize :: IPv4 -> Int # countLeadingZeros :: IPv4 -> Int # countTrailingZeros :: IPv4 -> Int # | |
Data IPv4 # | |
Defined in Net.IPv4 Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> IPv4 -> c IPv4 # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c IPv4 # dataTypeOf :: IPv4 -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c IPv4) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c IPv4) # gmapT :: (forall b. Data b => b -> b) -> IPv4 -> IPv4 # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> IPv4 -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> IPv4 -> r # gmapQ :: (forall d. Data d => d -> u) -> IPv4 -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> IPv4 -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> IPv4 -> m IPv4 # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> IPv4 -> m IPv4 # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> IPv4 -> m IPv4 # | |
Bounded IPv4 # | |
Enum IPv4 # | |
Storable IPv4 # | |
Defined in Net.IPv4 | |
Generic IPv4 # | |
Ix IPv4 # | |
Read IPv4 # | |
Show IPv4 # | |
Eq IPv4 # | |
Ord IPv4 # | |
Hashable IPv4 # | |
Prim IPv4 # | |
Defined in Net.IPv4 Methods sizeOfType# :: Proxy IPv4 -> Int# # alignmentOfType# :: Proxy IPv4 -> Int# # alignment# :: IPv4 -> Int# # indexByteArray# :: ByteArray# -> Int# -> IPv4 # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, IPv4 #) # writeByteArray# :: MutableByteArray# s -> Int# -> IPv4 -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> IPv4 -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> IPv4 # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, IPv4 #) # writeOffAddr# :: Addr# -> Int# -> IPv4 -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> IPv4 -> State# s -> State# s # | |
Unbox IPv4 # | |
Defined in Net.IPv4 | |
Vector Vector IPv4 # | |
Defined in Net.IPv4 Methods basicUnsafeFreeze :: Mutable Vector s IPv4 -> ST s (Vector IPv4) basicUnsafeThaw :: Vector IPv4 -> ST s (Mutable Vector s IPv4) basicLength :: Vector IPv4 -> Int basicUnsafeSlice :: Int -> Int -> Vector IPv4 -> Vector IPv4 basicUnsafeIndexM :: Vector IPv4 -> Int -> Box IPv4 basicUnsafeCopy :: Mutable Vector s IPv4 -> Vector IPv4 -> ST s () | |
MVector MVector IPv4 # | |
Defined in Net.IPv4 Methods basicLength :: MVector s IPv4 -> Int basicUnsafeSlice :: Int -> Int -> MVector s IPv4 -> MVector s IPv4 basicOverlaps :: MVector s IPv4 -> MVector s IPv4 -> Bool basicUnsafeNew :: Int -> ST s (MVector s IPv4) basicInitialize :: MVector s IPv4 -> ST s () basicUnsafeReplicate :: Int -> IPv4 -> ST s (MVector s IPv4) basicUnsafeRead :: MVector s IPv4 -> Int -> ST s IPv4 basicUnsafeWrite :: MVector s IPv4 -> Int -> IPv4 -> ST s () basicClear :: MVector s IPv4 -> ST s () basicSet :: MVector s IPv4 -> IPv4 -> ST s () basicUnsafeCopy :: MVector s IPv4 -> MVector s IPv4 -> ST s () basicUnsafeMove :: MVector s IPv4 -> MVector s IPv4 -> ST s () basicUnsafeGrow :: MVector s IPv4 -> Int -> ST s (MVector s IPv4) | |
type Rep IPv4 # | |
newtype Vector IPv4 # | |
newtype MVector s IPv4 # | |
A 128-bit Internet Protocol version 6 address.
Instances
A 32-bit IPv4
address or a 128-bit IPv6
address. Internally, this
is just represented as an IPv6
address. The functions provided
in Net.IP
help simulate constructing and pattern matching on values
of this type. All functions and typeclass methods that convert
IP
values to text will display it as an IPv4
address if possible.
Instances
FromJSON IP # | |
ToJSON IP # | |
NFData IP # | |
Data IP # | |
Defined in Net.IP Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> IP -> c IP # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c IP # dataTypeOf :: IP -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c IP) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c IP) # gmapT :: (forall b. Data b => b -> b) -> IP -> IP # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> IP -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> IP -> r # gmapQ :: (forall d. Data d => d -> u) -> IP -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> IP -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> IP -> m IP # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> IP -> m IP # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> IP -> m IP # | |
Generic IP # | |
Ix IP # | |
Read IP # | |
Show IP # | |
Eq IP # | |
Ord IP # | |
Hashable IP # | |
type Rep IP # | |
The length should be between 0 and 32. These bounds are inclusive. This expectation is not in any way enforced by this library because it does not cause errors. A mask length greater than 32 will be treated as if it were 32.
Constructors
IPv4Range | |
Fields
|
Instances
FromJSON IPv4Range # | |||||
ToJSON IPv4Range # | |||||
NFData IPv4Range # | |||||
Data IPv4Range # | |||||
Defined in Net.IPv4 Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> IPv4Range -> c IPv4Range # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c IPv4Range # toConstr :: IPv4Range -> Constr # dataTypeOf :: IPv4Range -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c IPv4Range) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c IPv4Range) # gmapT :: (forall b. Data b => b -> b) -> IPv4Range -> IPv4Range # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> IPv4Range -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> IPv4Range -> r # gmapQ :: (forall d. Data d => d -> u) -> IPv4Range -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> IPv4Range -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> IPv4Range -> m IPv4Range # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> IPv4Range -> m IPv4Range # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> IPv4Range -> m IPv4Range # | |||||
Generic IPv4Range # | |||||
Defined in Net.IPv4 Associated Types
| |||||
Read IPv4Range # | |||||
Show IPv4Range # | |||||
Eq IPv4Range # | |||||
Ord IPv4Range # | |||||
Hashable IPv4Range # | |||||
Unbox IPv4Range # | |||||
Defined in Net.IPv4 | |||||
Vector Vector IPv4Range # | |||||
Defined in Net.IPv4 Methods basicUnsafeFreeze :: Mutable Vector s IPv4Range -> ST s (Vector IPv4Range) basicUnsafeThaw :: Vector IPv4Range -> ST s (Mutable Vector s IPv4Range) basicLength :: Vector IPv4Range -> Int basicUnsafeSlice :: Int -> Int -> Vector IPv4Range -> Vector IPv4Range basicUnsafeIndexM :: Vector IPv4Range -> Int -> Box IPv4Range basicUnsafeCopy :: Mutable Vector s IPv4Range -> Vector IPv4Range -> ST s () | |||||
MVector MVector IPv4Range # | |||||
Defined in Net.IPv4 Methods basicLength :: MVector s IPv4Range -> Int basicUnsafeSlice :: Int -> Int -> MVector s IPv4Range -> MVector s IPv4Range basicOverlaps :: MVector s IPv4Range -> MVector s IPv4Range -> Bool basicUnsafeNew :: Int -> ST s (MVector s IPv4Range) basicInitialize :: MVector s IPv4Range -> ST s () basicUnsafeReplicate :: Int -> IPv4Range -> ST s (MVector s IPv4Range) basicUnsafeRead :: MVector s IPv4Range -> Int -> ST s IPv4Range basicUnsafeWrite :: MVector s IPv4Range -> Int -> IPv4Range -> ST s () basicClear :: MVector s IPv4Range -> ST s () basicSet :: MVector s IPv4Range -> IPv4Range -> ST s () basicUnsafeCopy :: MVector s IPv4Range -> MVector s IPv4Range -> ST s () basicUnsafeMove :: MVector s IPv4Range -> MVector s IPv4Range -> ST s () basicUnsafeGrow :: MVector s IPv4Range -> Int -> ST s (MVector s IPv4Range) | |||||
type Rep IPv4Range # | |||||
Defined in Net.IPv4 type Rep IPv4Range = D1 ('MetaData "IPv4Range" "Net.IPv4" "ip-1.7.8-AipOdb0Sv1p9R8aZCz7tFh" 'False) (C1 ('MetaCons "IPv4Range" 'PrefixI 'True) (S1 ('MetaSel ('Just "ipv4RangeBase") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 IPv4) :*: S1 ('MetaSel ('Just "ipv4RangeLength") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Word8))) | |||||
data Vector IPv4Range # | |||||
Defined in Net.IPv4 | |||||
data MVector s IPv4Range # | |||||
Defined in Net.IPv4 |
Constructors
IPv6Range | |
Fields
|
Instances
FromJSON IPv6Range # | |||||
ToJSON IPv6Range # | |||||
NFData IPv6Range # | |||||
Data IPv6Range # | |||||
Defined in Net.IPv6 Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> IPv6Range -> c IPv6Range # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c IPv6Range # toConstr :: IPv6Range -> Constr # dataTypeOf :: IPv6Range -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c IPv6Range) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c IPv6Range) # gmapT :: (forall b. Data b => b -> b) -> IPv6Range -> IPv6Range # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> IPv6Range -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> IPv6Range -> r # gmapQ :: (forall d. Data d => d -> u) -> IPv6Range -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> IPv6Range -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> IPv6Range -> m IPv6Range # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> IPv6Range -> m IPv6Range # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> IPv6Range -> m IPv6Range # | |||||
Generic IPv6Range # | |||||
Defined in Net.IPv6 Associated Types
| |||||
Read IPv6Range # | |||||
Show IPv6Range # | |||||
Eq IPv6Range # | |||||
Ord IPv6Range # | |||||
type Rep IPv6Range # | |||||
Defined in Net.IPv6 type Rep IPv6Range = D1 ('MetaData "IPv6Range" "Net.IPv6" "ip-1.7.8-AipOdb0Sv1p9R8aZCz7tFh" 'False) (C1 ('MetaCons "IPv6Range" 'PrefixI 'True) (S1 ('MetaSel ('Just "ipv6RangeBase") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 IPv6) :*: S1 ('MetaSel ('Just "ipv6RangeLength") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Word8))) |
A 48-bit MAC address. Do not use the data constructor for this type. It is not considered part of the stable API, and it allows you to construct invalid MAC addresses.
Instances
FromJSON Mac # | |
FromJSONKey Mac # | |
Defined in Net.Mac | |
ToJSON Mac # | |
ToJSONKey Mac # | |
Defined in Net.Mac | |
NFData Mac # | |
Data Mac # | |
Defined in Net.Mac Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Mac -> c Mac # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Mac # dataTypeOf :: Mac -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Mac) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Mac) # gmapT :: (forall b. Data b => b -> b) -> Mac -> Mac # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Mac -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Mac -> r # gmapQ :: (forall d. Data d => d -> u) -> Mac -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Mac -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Mac -> m Mac # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Mac -> m Mac # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Mac -> m Mac # | |
Bounded Mac # | |
Enum Mac # | |
Generic Mac # | |
Ix Mac # | |
Read Mac # | |
Show Mac # | |
Eq Mac # | |
Ord Mac # | |
Hashable Mac # | |
Prim Mac # | This only preserves the lower 6 bytes of the 8-byte word that backs a mac address.
It runs slower than it would if it used a full 8-byte word, but it consumes less
space. When storing millions of mac addresses, this is a good trade to make. When
storing a small number of mac address, it might be preferable to make a primitive
array of |
Defined in Net.Mac Methods sizeOfType# :: Proxy Mac -> Int# # alignmentOfType# :: Proxy Mac -> Int# # alignment# :: Mac -> Int# # indexByteArray# :: ByteArray# -> Int# -> Mac # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Mac #) # writeByteArray# :: MutableByteArray# s -> Int# -> Mac -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Mac -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Mac # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Mac #) # writeOffAddr# :: Addr# -> Int# -> Mac -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Mac -> State# s -> State# s # | |
type Rep Mac # | |
Constructors
MacCodec | |
Fields |
Instances
Data MacCodec # | |||||
Defined in Net.Mac Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> MacCodec -> c MacCodec # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c MacCodec # toConstr :: MacCodec -> Constr # dataTypeOf :: MacCodec -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c MacCodec) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c MacCodec) # gmapT :: (forall b. Data b => b -> b) -> MacCodec -> MacCodec # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> MacCodec -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> MacCodec -> r # gmapQ :: (forall d. Data d => d -> u) -> MacCodec -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> MacCodec -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> MacCodec -> m MacCodec # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> MacCodec -> m MacCodec # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> MacCodec -> m MacCodec # | |||||
Generic MacCodec # | |||||
Defined in Net.Mac Associated Types
| |||||
Read MacCodec # | |||||
Show MacCodec # | |||||
Eq MacCodec # | |||||
Ord MacCodec # | |||||
Defined in Net.Mac | |||||
type Rep MacCodec # | |||||
Defined in Net.Mac type Rep MacCodec = D1 ('MetaData "MacCodec" "Net.Mac" "ip-1.7.8-AipOdb0Sv1p9R8aZCz7tFh" 'False) (C1 ('MetaCons "MacCodec" 'PrefixI 'True) (S1 ('MetaSel ('Just "macCodecGrouping") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 MacGrouping) :*: S1 ('MetaSel ('Just "macCodecUpperCase") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool))) |
data MacGrouping #
The format expected by the mac address parser. The Word8
taken
by some of these constructors is the ascii value of the character
to be used as the separator. This is typically a colon, a hyphen, or
a space character. All decoding functions are case insensitive.
Constructors
MacGroupingPairs !Char | Two-character groups, |
MacGroupingTriples !Char | Three-character groups, |
MacGroupingQuadruples !Char | Four-character groups, |
MacGroupingNoSeparator | No separator, |