-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Self-identifying base encodings, implementation of -- -- Self-identifying base encodings, implementation of -- https://github.com/multiformats/multihash @package multibase @version 0.1.1 -- | Type-safe kitchen sink base-N encoding and decoding of strict -- ByteStrings. module Data.ByteString.BaseN -- | Supported bases. data Base (a :: Symbol) [BaseIdentity] :: Base "id" [Base2] :: Base "2" [Base16] :: Base "16" [Base64] :: Base "64" -- | hexadecimal, uppercase alphabet [Base16upper] :: Base "16u" -- | RFC4648 no padding - highest char [Base32hex] :: Base "32x" -- | RFC4648 no padding - highest char, uppercase alphabet [Base32hexupper] :: Base "32xu" -- | RFC4648 with padding [Base32hexpad] :: Base "32xp" -- | RFC4648 with padding, uppercase alphabet [Base32hexpadupper] :: Base "32xpu" -- | RFC4648 no padding [Base32] :: Base "32" -- | z-base-32 (used by Tahoe-LAFS) [Base32z] :: Base "32z" -- | RFC4648 no padding, uppercase alphabet [Base32upper] :: Base "32u" -- | RFC4648 with padding [Base32pad] :: Base "32p" -- | RFC4648 with padding, uppercase alphabet [Base32padupper] :: Base "32pu" -- | base58 flickr alphabet [Base58flickr] :: Base "58flickr" -- | base58 bitcoint alphabet [Base58btc] :: Base "58btc" -- | RFC4648 with padding (MIME-encoding) [Base64pad] :: Base "64p" -- | RFC4648 no padding [Base64url] :: Base "64url" -- | RFC4648 with padding [Base64urlpad] :: Base "64urlp" -- | A ByteString encoded at a specific base. data AtBase (b :: Symbol) -- | Extract the base-n encoded bytes from an AtBase. -- -- To recover the original ByteString (*not* base-n encoded), use -- decode. encodedBytes :: AtBase b -> ByteString -- | Like encodedBytes, but return a Builder. encodedBuilder :: AtBase b -> Builder type Base2 = AtBase "2" type Base16 = AtBase "16" type Base58 = AtBase "58" type Base64 = AtBase "64" type BaseIdentity = AtBase "id" type Base16upper = AtBase "16u" type Base32hex = AtBase "16x" type Base32hexupper = AtBase "16xu" type Base32hexpad = AtBase "16xp" type Base32hexpadupper = AtBase "16xup" type Base32 = AtBase "32" type Base32z = AtBase "32z" type Base32upper = AtBase "32u" type Base32pad = AtBase "32p" type Base32padupper = AtBase "32pu" type Base58flickr = AtBase "58flickr" type Base58btc = AtBase "58btc" type Base64pad = AtBase "64p" type Base64url = AtBase "64url" type Base64urlpad = AtBase "16urlp" -- | A more memory-efficient representation of base-n encoded bytes. -- -- Uses ShortByteString, recommendations and caveats described -- there apply. data AtBaseCompact (b :: Symbol) compact :: AtBase b -> AtBaseCompact b expand :: AtBaseCompact b -> AtBase b type Base16Of a = Tagged a (AtBase "16") type Base58Of a = Tagged a (AtBase "58") type Base64Of a = Tagged a (AtBase "64") -- | Another way to convert a proxy to a tag. tagWith :: () => proxy s -> a -> Tagged s a unTagged :: Tagged s b -> b data DeserialiseError DecodeBaseError :: String -> DeserialiseError DeserialiseError :: DeserialiseFailure -> DeserialiseError deserialiseAtBase :: (Serialise a, DecodeBase b) => proxy b -> ByteString -> Either DeserialiseError a encodeBase16 :: ByteString -> AtBase "16" -- |
--   >>> fromAtBase . encodeBase58btc $ "hello world"
--   "StV1DL6CwTryKyV"
--   
encodeBase58btc :: ByteString -> AtBase "58btc" encodeBase64 :: ByteString -> AtBase "64" -- | Encode at a base supplied at runtime. encodeAtBase :: Base b -> ByteString -> AtBase b class DecodeBase (b :: Symbol) decodeBase16 :: ByteString -> Maybe ByteString decodeBase16Either :: ByteString -> Either String ByteString -- |
--   \(Bytes bytes) -> decodeBase58btc (fromAtBase $ encodeBase58btc bytes) === Right bytes
--   
decodeBase58btc :: ByteString -> Either String ByteString decodeBase64 :: ByteString -> Maybe ByteString decodeBase64Either :: ByteString -> Either String ByteString decodeBase64Lenient :: ByteString -> ByteString decodeAtBase :: DecodeBase b => proxy b -> ByteString -> Maybe ByteString decodeAtBaseEither :: DecodeBase b => proxy b -> ByteString -> Either String ByteString -- | Recover the original ByteString of a base-n encoded value. decode :: DecodeBase b => AtBase b -> ByteString class KnownSymbol b => ValidBase (b :: Symbol) validBase16 :: ByteString -> Maybe (AtBase "16") validBase16Either :: ByteString -> Either String (AtBase "16") validBase58btc :: ByteString -> Maybe (AtBase "58btc") validBase58btcEither :: ByteString -> Either String (AtBase "58btc") validBase64 :: ByteString -> Maybe (AtBase "64") validBase64Either :: ByteString -> Either String (AtBase "64") validAtBase :: ValidBase b => proxy b -> ByteString -> Maybe (AtBase b) validAtBaseEither :: ValidBase b => proxy b -> ByteString -> Either String (AtBase b) -- | Like validAtBase, but also return the decoded -- ByteString. validAndDecoded :: DecodeBase b => proxy b -> ByteString -> Maybe (AtBase b, ByteString) -- | Like validAtBaseEither, but also return the decoded -- ByteString. validAndDecodedEither :: DecodeBase b => proxy b -> ByteString -> Either String (AtBase b, ByteString) -- | Like encodeAtBase, but from a Text value. encodedTextAtBase :: Base b -> Text -> AtBase b -- | Like encodedBytes, but returns a Text value. encodedText :: AtBase b -> Text -- | Like encodedBuilder, but returns a text Builder. encodedTextBuilder :: AtBase b -> Builder -- | Format a base-n encoded value. format :: Format r (AtBase b -> r) -- | Format a base-n encoded value. formatAtBase :: Format r (AtBase b -> r) instance GHC.Show.Show Data.ByteString.BaseN.DeserialiseError instance Control.DeepSeq.NFData (Data.ByteString.BaseN.AtBaseCompact b) instance Data.Hashable.Class.Hashable (Data.ByteString.BaseN.AtBaseCompact b) instance GHC.Classes.Ord (Data.ByteString.BaseN.AtBaseCompact b) instance GHC.Classes.Eq (Data.ByteString.BaseN.AtBaseCompact b) instance Data.Hashable.Class.Hashable (Data.ByteString.BaseN.AtBase b) instance Control.DeepSeq.NFData (Data.ByteString.BaseN.AtBase b) instance GHC.Classes.Ord (Data.ByteString.BaseN.AtBase b) instance GHC.Classes.Eq (Data.ByteString.BaseN.AtBase b) instance Data.ByteString.BaseN.ValidBase b => Data.String.IsString (Data.ByteString.BaseN.AtBase b) instance (Data.ByteString.BaseN.ValidBase b, GHC.TypeLits.KnownSymbol b) => Data.Aeson.Types.FromJSON.FromJSON (Data.ByteString.BaseN.AtBase b) instance (Data.ByteString.BaseN.ValidBase b, GHC.TypeLits.KnownSymbol b) => Data.Aeson.Types.FromJSON.FromJSONKey (Data.ByteString.BaseN.AtBase b) instance Data.ByteString.BaseN.ValidBase "id" instance Data.ByteString.BaseN.ValidBase "2" instance Data.ByteString.BaseN.ValidBase "16" instance Data.ByteString.BaseN.ValidBase "16u" instance Data.ByteString.BaseN.ValidBase "32x" instance Data.ByteString.BaseN.ValidBase "32xu" instance Data.ByteString.BaseN.ValidBase "32xp" instance Data.ByteString.BaseN.ValidBase "32xpu" instance Data.ByteString.BaseN.ValidBase "32" instance Data.ByteString.BaseN.ValidBase "32z" instance Data.ByteString.BaseN.ValidBase "32u" instance Data.ByteString.BaseN.ValidBase "32p" instance Data.ByteString.BaseN.ValidBase "32pu" instance Data.ByteString.BaseN.ValidBase "58btc" instance Data.ByteString.BaseN.ValidBase "58flickr" instance Data.ByteString.BaseN.ValidBase "64" instance Data.ByteString.BaseN.ValidBase "64p" instance Data.ByteString.BaseN.ValidBase "64url" instance Data.ByteString.BaseN.ValidBase "64urlpad" instance Data.ByteString.BaseN.DecodeBase "id" instance Data.ByteString.BaseN.DecodeBase "2" instance Data.ByteString.BaseN.DecodeBase "16" instance Data.ByteString.BaseN.DecodeBase "16u" instance Data.ByteString.BaseN.DecodeBase "32" instance Data.ByteString.BaseN.DecodeBase "32z" instance Data.ByteString.BaseN.DecodeBase "32u" instance Data.ByteString.BaseN.DecodeBase "32p" instance Data.ByteString.BaseN.DecodeBase "32pu" instance Data.ByteString.BaseN.DecodeBase "32x" instance Data.ByteString.BaseN.DecodeBase "32xu" instance Data.ByteString.BaseN.DecodeBase "32xp" instance Data.ByteString.BaseN.DecodeBase "32xpu" instance Data.ByteString.BaseN.DecodeBase "58btc" instance Data.ByteString.BaseN.DecodeBase "58flickr" instance Data.ByteString.BaseN.DecodeBase "64" instance Data.ByteString.BaseN.DecodeBase "64p" instance Data.ByteString.BaseN.DecodeBase "64url" instance Data.ByteString.BaseN.DecodeBase "64urlpad" instance GHC.TypeLits.KnownSymbol b => GHC.Show.Show (Data.ByteString.BaseN.AtBaseCompact b) instance GHC.TypeLits.KnownSymbol b => GHC.Show.Show (Data.ByteString.BaseN.AtBase b) instance Data.Aeson.Types.ToJSON.ToJSON (Data.ByteString.BaseN.AtBase b) instance Data.Aeson.Types.ToJSON.ToJSONKey (Data.ByteString.BaseN.AtBase b) -- | multibase encoding of strict ByteStrings. module Data.ByteString.Multibase -- | Supported bases. data Base (a :: Symbol) [BaseIdentity] :: Base "id" [Base2] :: Base "2" [Base16] :: Base "16" [Base64] :: Base "64" -- | hexadecimal, uppercase alphabet [Base16upper] :: Base "16u" -- | RFC4648 no padding - highest char [Base32hex] :: Base "32x" -- | RFC4648 no padding - highest char, uppercase alphabet [Base32hexupper] :: Base "32xu" -- | RFC4648 with padding [Base32hexpad] :: Base "32xp" -- | RFC4648 with padding, uppercase alphabet [Base32hexpadupper] :: Base "32xpu" -- | RFC4648 no padding [Base32] :: Base "32" -- | z-base-32 (used by Tahoe-LAFS) [Base32z] :: Base "32z" -- | RFC4648 no padding, uppercase alphabet [Base32upper] :: Base "32u" -- | RFC4648 with padding [Base32pad] :: Base "32p" -- | RFC4648 with padding, uppercase alphabet [Base32padupper] :: Base "32pu" -- | base58 flickr alphabet [Base58flickr] :: Base "58flickr" -- | base58 bitcoint alphabet [Base58btc] :: Base "58btc" -- | RFC4648 with padding (MIME-encoding) [Base64pad] :: Base "64p" -- | RFC4648 no padding [Base64url] :: Base "64url" -- | RFC4648 with padding [Base64urlpad] :: Base "64urlp" -- | Symbols for which a multibase code is defined and supported by this -- library class ValidBase b => ToCode b -- | A multibase-encoded strict ByteString. data Multibase -- | Extract the encoded bytes, including the code Char, from a -- Multibase. fromMultibase :: Multibase -> ByteString -- | Extract the encoded bytes from a Multibase. -- -- The code Char signifying the base is stripped. encodedBytes :: Multibase -> ByteString -- | Encode a strict ByteString at Base. encode :: ToCode b => AtBase b -> Multibase -- | Decode a strict ByteString, assumed to be -- Multibase-encoded. decode :: ByteString -> Either String ByteString -- | A 'Multibase backed by a ShortByteString. -- -- This is useful when holding many Multibase values in memory, -- due to lower memory overhead and less heap fragmentation. See the -- documentation for ShortByteString for details. data CompactMultibase -- | O(n). Convert a Multibase encoding to a compact -- representation. -- -- Involves copying the underlying ByteString. compact :: Multibase -> CompactMultibase -- | O(n). Convert from the compact to the regular representation. -- -- Involves copying the underlying ShortByteString. expand :: CompactMultibase -> Multibase instance Control.DeepSeq.NFData Data.ByteString.Multibase.CompactMultibase instance Data.Hashable.Class.Hashable Data.ByteString.Multibase.CompactMultibase instance GHC.Classes.Ord Data.ByteString.Multibase.CompactMultibase instance GHC.Classes.Eq Data.ByteString.Multibase.CompactMultibase instance Control.DeepSeq.NFData Data.ByteString.Multibase.Multibase instance Data.Hashable.Class.Hashable Data.ByteString.Multibase.Multibase instance GHC.Classes.Ord Data.ByteString.Multibase.Multibase instance GHC.Classes.Eq Data.ByteString.Multibase.Multibase instance Data.ByteString.Multibase.ToCode "id" instance Data.ByteString.Multibase.ToCode "16" instance Data.ByteString.Multibase.ToCode "16u" instance Data.ByteString.Multibase.ToCode "32x" instance Data.ByteString.Multibase.ToCode "32xu" instance Data.ByteString.Multibase.ToCode "32xp" instance Data.ByteString.Multibase.ToCode "32xpu" instance Data.ByteString.Multibase.ToCode "32" instance Data.ByteString.Multibase.ToCode "32z" instance Data.ByteString.Multibase.ToCode "32u" instance Data.ByteString.Multibase.ToCode "32p" instance Data.ByteString.Multibase.ToCode "32pu" instance Data.ByteString.Multibase.ToCode "58flickr" instance Data.ByteString.Multibase.ToCode "58btc" instance Data.ByteString.Multibase.ToCode "64" instance Data.ByteString.Multibase.ToCode "64p" instance Data.ByteString.Multibase.ToCode "64url" instance Data.ByteString.Multibase.ToCode "64urlpad"