base16-1.0: Fast RFC 4648-compliant Base16 encoding
Copyright(c) 2019-2022 Emily Pillmore
LicenseBSD-style
MaintainerEmily Pillmore <emilypi@cohomolo.gy>, sofia-m-a <https://github.com/sofia-m-a>
Stabilitystable
Portabilitynon-portable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Base16.Types

Description

This module contains the Base16 type definition, Alphabet datatype, alphabet constraints, and various quality of life combinators for working with Base16-wrapped data.

Synopsis

Documentation

data Base16 a Source #

Wraps a value, asserting that it is or is intended to be in a particular kind of Base16 encoding use extractBase16 to extract the value, and assertBase16 to tag a value as base16-encoded

Instances

Instances details
Eq1 Base16 Source # 
Instance details

Defined in Data.Base16.Types.Internal

Methods

liftEq :: (a -> b -> Bool) -> Base16 a -> Base16 b -> Bool #

Ord1 Base16 Source # 
Instance details

Defined in Data.Base16.Types.Internal

Methods

liftCompare :: (a -> b -> Ordering) -> Base16 a -> Base16 b -> Ordering #

Applicative Base16 Source # 
Instance details

Defined in Data.Base16.Types.Internal

Methods

pure :: a -> Base16 a #

(<*>) :: Base16 (a -> b) -> Base16 a -> Base16 b #

liftA2 :: (a -> b -> c) -> Base16 a -> Base16 b -> Base16 c #

(*>) :: Base16 a -> Base16 b -> Base16 b #

(<*) :: Base16 a -> Base16 b -> Base16 a #

Functor Base16 Source # 
Instance details

Defined in Data.Base16.Types.Internal

Methods

fmap :: (a -> b) -> Base16 a -> Base16 b #

(<$) :: a -> Base16 b -> Base16 a #

Monad Base16 Source # 
Instance details

Defined in Data.Base16.Types.Internal

Methods

(>>=) :: Base16 a -> (a -> Base16 b) -> Base16 b #

(>>) :: Base16 a -> Base16 b -> Base16 b #

return :: a -> Base16 a #

Show a => Show (Base16 a) Source # 
Instance details

Defined in Data.Base16.Types.Internal

Methods

showsPrec :: Int -> Base16 a -> ShowS #

show :: Base16 a -> String #

showList :: [Base16 a] -> ShowS #

NFData a => NFData (Base16 a) Source # 
Instance details

Defined in Data.Base16.Types.Internal

Methods

rnf :: Base16 a -> () #

Eq a => Eq (Base16 a) Source # 
Instance details

Defined in Data.Base16.Types.Internal

Methods

(==) :: Base16 a -> Base16 a -> Bool #

(/=) :: Base16 a -> Base16 a -> Bool #

Ord a => Ord (Base16 a) Source # 
Instance details

Defined in Data.Base16.Types.Internal

Methods

compare :: Base16 a -> Base16 a -> Ordering #

(<) :: Base16 a -> Base16 a -> Bool #

(<=) :: Base16 a -> Base16 a -> Bool #

(>) :: Base16 a -> Base16 a -> Bool #

(>=) :: Base16 a -> Base16 a -> Bool #

max :: Base16 a -> Base16 a -> Base16 a #

min :: Base16 a -> Base16 a -> Base16 a #

assertBase16 :: a -> Base16 a Source #

Assert the provenance of a value.

Warning: This is a blind assertion that a particular value is base16 encoded in some alphabet. If you are not sure of the provenance of the value, you may experience odd behavior when attempting to decode. Use at your own risk. If I see any issues logged on this project from negligent use of this, Sofia and I will smite you.

extractBase16 :: Base16 a -> a Source #

Forget that a particular value is Base16-encoded