-- 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