{-# LANGUAGE NoImplicitPrelude #-}
module Codec.QRCode
(
encode
, encodeAutomatic
, encodeText
, encodeBinary
, encodeKanji
, encodeAlphanumeric
, encodeNumeric
, module Codec.QRCode.Data.QRCodeOptions
, module Codec.QRCode.Data.ErrorLevel
, module Codec.QRCode.Data.Mask
, module Codec.QRCode.Data.TextEncoding
, module Codec.QRCode.Data.ToInput
, module Codec.QRCode.Data.QRImage
) where
import Codec.QRCode.Base
import Codec.QRCode.Code.Intermediate
import Codec.QRCode.Data.ErrorLevel
import Codec.QRCode.Data.Mask
import Codec.QRCode.Data.QRCodeOptions
import Codec.QRCode.Data.QRImage
import Codec.QRCode.Data.Result
import Codec.QRCode.Data.TextEncoding
import Codec.QRCode.Data.ToInput
import Codec.QRCode.Mode.Alphanumeric
import Codec.QRCode.Mode.Automatic
import Codec.QRCode.Mode.Byte
import Codec.QRCode.Mode.Kanji
import Codec.QRCode.Mode.Mixed
import Codec.QRCode.Mode.Numeric
encode :: ToText a => QRCodeOptions -> TextEncoding -> a -> Maybe QRImage
{-# INLINABLE encode #-}
encode :: forall a.
ToText a =>
QRCodeOptions -> TextEncoding -> a -> Maybe QRImage
encode QRCodeOptions
opt TextEncoding
te = forall a. Result a -> Maybe a
getResult forall b c a. (b -> c) -> (a -> b) -> a -> c
. (QRIntermediate -> QRImage
fromIntermediate forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (QRCodeOptions -> QRSegment -> Result QRIntermediate
toIntermediate QRCodeOptions
opt forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<<) forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. ToText a => TextEncoding -> a -> Result QRSegment
mixed TextEncoding
te
encodeAutomatic :: ToText a => QRCodeOptions -> TextEncoding -> a -> Maybe QRImage
{-# INLINABLE encodeAutomatic #-}
encodeAutomatic :: forall a.
ToText a =>
QRCodeOptions -> TextEncoding -> a -> Maybe QRImage
encodeAutomatic QRCodeOptions
opt TextEncoding
te = forall a. Result a -> Maybe a
getResult forall b c a. (b -> c) -> (a -> b) -> a -> c
. (QRIntermediate -> QRImage
fromIntermediate forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (QRCodeOptions -> QRSegment -> Result QRIntermediate
toIntermediate QRCodeOptions
opt forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<<) forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. ToText a => TextEncoding -> a -> Result QRSegment
automatic TextEncoding
te
encodeText :: ToText a => QRCodeOptions -> TextEncoding -> a -> Maybe QRImage
{-# INLINABLE encodeText #-}
encodeText :: forall a.
ToText a =>
QRCodeOptions -> TextEncoding -> a -> Maybe QRImage
encodeText QRCodeOptions
opt TextEncoding
te = forall a. Result a -> Maybe a
getResult forall b c a. (b -> c) -> (a -> b) -> a -> c
. (QRIntermediate -> QRImage
fromIntermediate forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (QRCodeOptions -> QRSegment -> Result QRIntermediate
toIntermediate QRCodeOptions
opt forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<<) forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. ToText a => TextEncoding -> a -> Result QRSegment
text TextEncoding
te
encodeBinary :: ToBinary a => QRCodeOptions -> a -> Maybe QRImage
{-# INLINABLE encodeBinary #-}
encodeBinary :: forall a. ToBinary a => QRCodeOptions -> a -> Maybe QRImage
encodeBinary QRCodeOptions
opt = forall a. Result a -> Maybe a
getResult forall b c a. (b -> c) -> (a -> b) -> a -> c
. (QRIntermediate -> QRImage
fromIntermediate forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>) forall b c a. (b -> c) -> (a -> b) -> a -> c
. QRCodeOptions -> QRSegment -> Result QRIntermediate
toIntermediate QRCodeOptions
opt forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. ToBinary a => a -> QRSegment
binary
encodeKanji :: ToText a => QRCodeOptions -> a -> Maybe QRImage
{-# INLINABLE encodeKanji #-}
encodeKanji :: forall a. ToText a => QRCodeOptions -> a -> Maybe QRImage
encodeKanji QRCodeOptions
opt = forall a. Result a -> Maybe a
getResult forall b c a. (b -> c) -> (a -> b) -> a -> c
. (QRIntermediate -> QRImage
fromIntermediate forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (QRCodeOptions -> QRSegment -> Result QRIntermediate
toIntermediate QRCodeOptions
opt forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<<) forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. ToText a => a -> Result QRSegment
kanji
encodeAlphanumeric :: ToText a => QRCodeOptions -> a -> Maybe QRImage
{-# INLINABLE encodeAlphanumeric #-}
encodeAlphanumeric :: forall a. ToText a => QRCodeOptions -> a -> Maybe QRImage
encodeAlphanumeric QRCodeOptions
opt = forall a. Result a -> Maybe a
getResult forall b c a. (b -> c) -> (a -> b) -> a -> c
. (QRIntermediate -> QRImage
fromIntermediate forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (QRCodeOptions -> QRSegment -> Result QRIntermediate
toIntermediate QRCodeOptions
opt forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<<) forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. ToText a => a -> Result QRSegment
alphanumeric
encodeNumeric :: ToNumeric a => QRCodeOptions -> a -> Maybe QRImage
{-# INLINABLE encodeNumeric #-}
encodeNumeric :: forall a. ToNumeric a => QRCodeOptions -> a -> Maybe QRImage
encodeNumeric QRCodeOptions
opt = forall a. Result a -> Maybe a
getResult forall b c a. (b -> c) -> (a -> b) -> a -> c
. (QRIntermediate -> QRImage
fromIntermediate forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (QRCodeOptions -> QRSegment -> Result QRIntermediate
toIntermediate QRCodeOptions
opt forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<<) forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. ToNumeric a => a -> Result QRSegment
numeric