sqids-0.1.3.0: A small library that lets you generate YouTube-looking IDs from numbers.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Web.Sqids

Synopsis

Documentation

sqidsVersion :: String Source #

Sqids spec. version

data SqidsOptions Source #

Options that can be passed to runSqids or runSqidsT.

Constructors

SqidsOptions 

Fields

data SqidsError Source #

Errors that can occur during encoding and decoding.

Constructors

SqidsAlphabetTooShort

The alphabet must be at least 5 characters long.

SqidsAlphabetRepeatedCharacters

The provided alphabet contains duplicate characters. E.g., "abcdefgg" is not a valid alphabet.

SqidsInvalidMinLength

The given minLength value is not within the valid range.

SqidsNegativeNumberInInput

One or more numbers in the list passed to encode are negative. Only non-negative integers can be used as input.

class Monad m => MonadSqids m where Source #

Methods

encode Source #

Arguments

:: [Int]

A list of non-negative integers to encode

-> m Text

Returns the generated ID

Encode a list of integers into an ID

decode Source #

Arguments

:: Text

The encoded ID

-> m [Int]

Returns a list of integers

Decode an ID back into a list of integers

Instances

Instances details
MonadSqids Sqids Source # 
Instance details

Defined in Web.Sqids.Internal

Monad m => MonadSqids (SqidsT m) Source # 
Instance details

Defined in Web.Sqids.Internal

Methods

encode :: [Int] -> SqidsT m Text Source #

decode :: Text -> SqidsT m [Int] Source #

MonadSqids m => MonadSqids (MaybeT m) Source # 
Instance details

Defined in Web.Sqids.Internal

Methods

encode :: [Int] -> MaybeT m Text Source #

decode :: Text -> MaybeT m [Int] Source #

MonadSqids m => MonadSqids (ExceptT e m) Source # 
Instance details

Defined in Web.Sqids.Internal

Methods

encode :: [Int] -> ExceptT e m Text Source #

decode :: Text -> ExceptT e m [Int] Source #

MonadSqids m => MonadSqids (ReaderT r m) Source # 
Instance details

Defined in Web.Sqids.Internal

Methods

encode :: [Int] -> ReaderT r m Text Source #

decode :: Text -> ReaderT r m [Int] Source #

MonadSqids m => MonadSqids (SelectT r m) Source # 
Instance details

Defined in Web.Sqids.Internal

Methods

encode :: [Int] -> SelectT r m Text Source #

decode :: Text -> SelectT r m [Int] Source #

MonadSqids m => MonadSqids (StateT s m) Source # 
Instance details

Defined in Web.Sqids.Internal

Methods

encode :: [Int] -> StateT s m Text Source #

decode :: Text -> StateT s m [Int] Source #

(MonadSqids m, Monoid w) => MonadSqids (WriterT w m) Source # 
Instance details

Defined in Web.Sqids.Internal

Methods

encode :: [Int] -> WriterT w m Text Source #

decode :: Text -> WriterT w m [Int] Source #

MonadSqids m => MonadSqids (ContT r m) Source # 
Instance details

Defined in Web.Sqids.Internal

Methods

encode :: [Int] -> ContT r m Text Source #

decode :: Text -> ContT r m [Int] Source #

data SqidsT m a Source #

Sqids monad transformer

Instances

Instances details
MonadTrans SqidsT Source # 
Instance details

Defined in Web.Sqids.Internal

Methods

lift :: Monad m => m a -> SqidsT m a #

Monad m => MonadError SqidsError (SqidsT m) Source # 
Instance details

Defined in Web.Sqids.Internal

Methods

throwError :: SqidsError -> SqidsT m a #

catchError :: SqidsT m a -> (SqidsError -> SqidsT m a) -> SqidsT m a #

Monad m => MonadReader SqidsContext (SqidsT m) Source # 
Instance details

Defined in Web.Sqids.Internal

Methods

ask :: SqidsT m SqidsContext #

local :: (SqidsContext -> SqidsContext) -> SqidsT m a -> SqidsT m a #

reader :: (SqidsContext -> a) -> SqidsT m a #

MonadIO m => MonadIO (SqidsT m) Source # 
Instance details

Defined in Web.Sqids.Internal

Methods

liftIO :: IO a -> SqidsT m a #

Monad m => Applicative (SqidsT m) Source # 
Instance details

Defined in Web.Sqids.Internal

Methods

pure :: a -> SqidsT m a #

(<*>) :: SqidsT m (a -> b) -> SqidsT m a -> SqidsT m b #

liftA2 :: (a -> b -> c) -> SqidsT m a -> SqidsT m b -> SqidsT m c #

(*>) :: SqidsT m a -> SqidsT m b -> SqidsT m b #

(<*) :: SqidsT m a -> SqidsT m b -> SqidsT m a #

Functor m => Functor (SqidsT m) Source # 
Instance details

Defined in Web.Sqids.Internal

Methods

fmap :: (a -> b) -> SqidsT m a -> SqidsT m b #

(<$) :: a -> SqidsT m b -> SqidsT m a #

Monad m => Monad (SqidsT m) Source # 
Instance details

Defined in Web.Sqids.Internal

Methods

(>>=) :: SqidsT m a -> (a -> SqidsT m b) -> SqidsT m b #

(>>) :: SqidsT m a -> SqidsT m b -> SqidsT m b #

return :: a -> SqidsT m a #

Monad m => MonadSqids (SqidsT m) Source # 
Instance details

Defined in Web.Sqids.Internal

Methods

encode :: [Int] -> SqidsT m Text Source #

decode :: Text -> SqidsT m [Int] Source #

runSqidsT :: Monad m => SqidsOptions -> SqidsT m a -> m (Either SqidsError a) Source #

Evaluate a SqidsT computation with the given options.

sqidsT :: Monad m => SqidsT m a -> m (Either SqidsError a) Source #

Evaluate a SqidsT computation with the default options. This is a short form for `runSqidsT defaultSqidsOptions`.

data Sqids a Source #

Instances

Instances details
Applicative Sqids Source # 
Instance details

Defined in Web.Sqids.Internal

Methods

pure :: a -> Sqids a #

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

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

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

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

Functor Sqids Source # 
Instance details

Defined in Web.Sqids.Internal

Methods

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

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

Monad Sqids Source # 
Instance details

Defined in Web.Sqids.Internal

Methods

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

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

return :: a -> Sqids a #

MonadSqids Sqids Source # 
Instance details

Defined in Web.Sqids.Internal

MonadError SqidsError Sqids Source # 
Instance details

Defined in Web.Sqids.Internal

Methods

throwError :: SqidsError -> Sqids a #

catchError :: Sqids a -> (SqidsError -> Sqids a) -> Sqids a #

MonadReader SqidsContext Sqids Source # 
Instance details

Defined in Web.Sqids.Internal

runSqids :: SqidsOptions -> Sqids a -> Either SqidsError a Source #

Evaluate a Sqids computation with the given options.

sqids :: Sqids a -> Either SqidsError a Source #

Evaluate a Sqids computation with the default options. This is a short form for `runSqids defaultSqidsOptions`.