-- 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.1.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 -> [AddrPart]
-- | 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 an IPFS part?
hasIPFS :: Multiaddr -> Bool
-- | An individual component of a multiaddr.
data AddrPart
IPv4Part :: !IPv4 -> AddrPart
IPv6Part :: !IPv6 -> AddrPart
UDPPart :: !Word16 -> AddrPart
TCPPart :: !Word16 -> AddrPart
IPFSPart :: !ByteString -> AddrPart
UDTPart :: AddrPart
UTPPart :: AddrPart
-- | An IPv4 address.
data IPv4
IPv4 :: {-# UNPACK #-} !Word32 -> IPv4
-- | Try to read an IPv4 address (e.g. "192.168.1.2")
readIPv4 :: Text -> Maybe IPv4
-- | An IPv6 address.
data IPv6
IPv6 :: {-# UNPACK #-} !Word32 -> {-# UNPACK #-} !Word32 -> {-# UNPACK #-} !Word32 -> {-# UNPACK #-} !Word32 -> IPv6
-- | Try to read an IPv6 address (e.g.
-- "2001:db8:85a3:8d3:1319:8a2e:370:7348")
readIPv6 :: Text -> Maybe IPv6
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_6AddrPart
instance GHC.Generics.Constructor Network.Multiaddr.C1_5AddrPart
instance GHC.Generics.Constructor Network.Multiaddr.C1_4AddrPart
instance GHC.Generics.Constructor Network.Multiaddr.C1_3AddrPart
instance GHC.Generics.Constructor Network.Multiaddr.C1_2AddrPart
instance GHC.Generics.Constructor Network.Multiaddr.C1_1AddrPart
instance GHC.Generics.Constructor Network.Multiaddr.C1_0AddrPart
instance GHC.Generics.Datatype Network.Multiaddr.D1AddrPart
instance GHC.Generics.Constructor Network.Multiaddr.C1_0IPv6
instance GHC.Generics.Datatype Network.Multiaddr.D1IPv6
instance GHC.Generics.Constructor Network.Multiaddr.C1_0IPv4
instance GHC.Generics.Datatype Network.Multiaddr.D1IPv4
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.AddrPart
instance GHC.Classes.Eq Network.Multiaddr.AddrPart
instance GHC.Generics.Generic Network.Multiaddr.IPv6
instance GHC.Enum.Bounded Network.Multiaddr.IPv6
instance GHC.Classes.Ord Network.Multiaddr.IPv6
instance GHC.Classes.Eq Network.Multiaddr.IPv6
instance GHC.Generics.Generic Network.Multiaddr.IPv4
instance GHC.Enum.Bounded Network.Multiaddr.IPv4
instance GHC.Classes.Ord Network.Multiaddr.IPv4
instance GHC.Classes.Eq Network.Multiaddr.IPv4
instance Data.Hashable.Class.Hashable Network.Multiaddr.IPv4
instance Data.Serialize.Serialize Network.Multiaddr.IPv4
instance Data.Hashable.Class.Hashable Network.Multiaddr.IPv6
instance Data.Serialize.Serialize Network.Multiaddr.IPv6
instance Network.Multiaddr.TextAddr Network.Multiaddr.IPv4
instance Network.Multiaddr.TextAddr Network.Multiaddr.IPv6
instance GHC.Show.Show Network.Multiaddr.IPv4
instance GHC.Show.Show Network.Multiaddr.IPv6
instance Data.Hashable.Class.Hashable Network.Multiaddr.AddrPart
instance Data.Serialize.Serialize Network.Multiaddr.AddrPart
instance Data.Hashable.Class.Hashable Network.Multiaddr.Multiaddr
instance Data.Serialize.Serialize Network.Multiaddr.Multiaddr
instance Network.Multiaddr.TextAddr Network.Multiaddr.AddrPart
instance GHC.Show.Show Network.Multiaddr.AddrPart
instance Network.Multiaddr.TextAddr Network.Multiaddr.Multiaddr
instance GHC.Show.Show Network.Multiaddr.Multiaddr