-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | A network address format
--
-- Multiaddr is a self-describing network address format supporting a
-- variety of protocols, with both string and binary representations.
@package multiaddr
@version 0.3.0
-- | Multiaddr is a self-describing network address format supporting a
-- variety of protocols, with both string and binary representations.
module Network.Multiaddr
-- | A network address.
data Multiaddr
-- | Try to read a multiaddr in the standard text format (e.g.
-- "/ip4/8.8.8.8/tcp/80")
readMultiaddr :: Text -> Maybe Multiaddr
-- | Encode a multiaddr using the standard binary represenation.
encode :: Multiaddr -> ByteString
-- | Try to decode a binary-encoded multiaddr.
decode :: ByteString -> Maybe Multiaddr
-- | Render an address to its standard text representation.
class TextAddr a
toText :: TextAddr a => a -> Text
-- | Append two multiaddrs (alias for (<>))
encapsulate :: Multiaddr -> Multiaddr -> Multiaddr
-- | Get the individual parts of the multiaddr, in order (e.g.
-- ["/ip4/8.8.8.8", "/tcp/80"])
parts :: Multiaddr -> [MultiaddrPart]
-- | Get an ordered list of the protocols specified by the multiaddr.
-- Protocols can appear more than once if they are repeated in the
-- multiaddr.
protocolNames :: Multiaddr -> [Text]
-- | Does the multiaddr contain an IPv4 part?
hasIPv4 :: Multiaddr -> Bool
-- | Does the multiaddr contain an IPv6 part?
hasIPv6 :: Multiaddr -> Bool
-- | Does the multiaddr contain a UDP part?
hasUDP :: Multiaddr -> Bool
-- | Does the multiaddr contain a TCP part?
hasTCP :: Multiaddr -> Bool
-- | Does the multiaddr contain a UDT part?
hasUDT :: Multiaddr -> Bool
-- | Does the multiaddr contain a UTP part?
hasUTP :: Multiaddr -> Bool
-- | Does the multiaddr contain a DCCP part?
hasDCCP :: Multiaddr -> Bool
-- | Does the multiaddr contain an SCTP part?
hasSCTP :: Multiaddr -> Bool
-- | Does the multiaddr contain an IPFS part?
hasIPFS :: Multiaddr -> Bool
-- | An individual component of a multiaddr.
data MultiaddrPart
IPv4 :: !IPv4Addr -> MultiaddrPart
IPv6 :: !IPv6Addr -> MultiaddrPart
UDP :: !Word16 -> MultiaddrPart
TCP :: !Word16 -> MultiaddrPart
DCCP :: !Word16 -> MultiaddrPart
SCTP :: !Word16 -> MultiaddrPart
IPFS :: !ByteString -> MultiaddrPart
UDT :: MultiaddrPart
UTP :: MultiaddrPart
HTTP :: MultiaddrPart
HTTPS :: MultiaddrPart
-- | An IPv4 address.
data IPv4Addr
IPv4Addr :: {-# UNPACK #-} !Word32 -> IPv4Addr
-- | Try to read an IPv4 address (e.g. "192.168.1.2")
readIPv4Addr :: Text -> Maybe IPv4Addr
-- | An IPv6 address.
data IPv6Addr
IPv6Addr :: {-# UNPACK #-} !Word32 -> {-# UNPACK #-} !Word32 -> {-# UNPACK #-} !Word32 -> {-# UNPACK #-} !Word32 -> IPv6Addr
-- | Try to read an IPv6 address (e.g.
-- "2001:db8:85a3:8d3:1319:8a2e:370:7348")
readIPv6Addr :: Text -> Maybe IPv6Addr
instance GHC.Generics.Selector Network.Multiaddr.S1_0_0Multiaddr
instance GHC.Generics.Constructor Network.Multiaddr.C1_0Multiaddr
instance GHC.Generics.Datatype Network.Multiaddr.D1Multiaddr
instance GHC.Generics.Constructor Network.Multiaddr.C1_10MultiaddrPart
instance GHC.Generics.Constructor Network.Multiaddr.C1_9MultiaddrPart
instance GHC.Generics.Constructor Network.Multiaddr.C1_8MultiaddrPart
instance GHC.Generics.Constructor Network.Multiaddr.C1_7MultiaddrPart
instance GHC.Generics.Constructor Network.Multiaddr.C1_6MultiaddrPart
instance GHC.Generics.Constructor Network.Multiaddr.C1_5MultiaddrPart
instance GHC.Generics.Constructor Network.Multiaddr.C1_4MultiaddrPart
instance GHC.Generics.Constructor Network.Multiaddr.C1_3MultiaddrPart
instance GHC.Generics.Constructor Network.Multiaddr.C1_2MultiaddrPart
instance GHC.Generics.Constructor Network.Multiaddr.C1_1MultiaddrPart
instance GHC.Generics.Constructor Network.Multiaddr.C1_0MultiaddrPart
instance GHC.Generics.Datatype Network.Multiaddr.D1MultiaddrPart
instance GHC.Generics.Constructor Network.Multiaddr.C1_0IPv6Addr
instance GHC.Generics.Datatype Network.Multiaddr.D1IPv6Addr
instance GHC.Generics.Constructor Network.Multiaddr.C1_0IPv4Addr
instance GHC.Generics.Datatype Network.Multiaddr.D1IPv4Addr
instance GHC.Generics.Generic Network.Multiaddr.Multiaddr
instance GHC.Base.Monoid Network.Multiaddr.Multiaddr
instance GHC.Classes.Eq Network.Multiaddr.Multiaddr
instance GHC.Generics.Generic Network.Multiaddr.MultiaddrPart
instance GHC.Classes.Eq Network.Multiaddr.MultiaddrPart
instance GHC.Generics.Generic Network.Multiaddr.IPv6Addr
instance GHC.Enum.Bounded Network.Multiaddr.IPv6Addr
instance GHC.Classes.Ord Network.Multiaddr.IPv6Addr
instance GHC.Classes.Eq Network.Multiaddr.IPv6Addr
instance GHC.Generics.Generic Network.Multiaddr.IPv4Addr
instance GHC.Enum.Bounded Network.Multiaddr.IPv4Addr
instance GHC.Classes.Ord Network.Multiaddr.IPv4Addr
instance GHC.Classes.Eq Network.Multiaddr.IPv4Addr
instance Data.Hashable.Class.Hashable Network.Multiaddr.IPv4Addr
instance Data.Serialize.Serialize Network.Multiaddr.IPv4Addr
instance Data.Hashable.Class.Hashable Network.Multiaddr.IPv6Addr
instance Data.Serialize.Serialize Network.Multiaddr.IPv6Addr
instance Network.Multiaddr.TextAddr Network.Multiaddr.IPv4Addr
instance Network.Multiaddr.TextAddr Network.Multiaddr.IPv6Addr
instance GHC.Show.Show Network.Multiaddr.IPv4Addr
instance GHC.Show.Show Network.Multiaddr.IPv6Addr
instance Data.Hashable.Class.Hashable Network.Multiaddr.MultiaddrPart
instance Data.Serialize.Serialize Network.Multiaddr.MultiaddrPart
instance Data.Hashable.Class.Hashable Network.Multiaddr.Multiaddr
instance Data.Serialize.Serialize Network.Multiaddr.Multiaddr
instance Network.Multiaddr.TextAddr Network.Multiaddr.MultiaddrPart
instance GHC.Show.Show Network.Multiaddr.MultiaddrPart
instance Network.Multiaddr.TextAddr Network.Multiaddr.Multiaddr
instance GHC.Show.Show Network.Multiaddr.Multiaddr