diff options
author | joe <joe@jerkface.net> | 2017-07-08 22:10:40 -0400 |
---|---|---|
committer | joe <joe@jerkface.net> | 2017-07-08 22:10:40 -0400 |
commit | 8fe93b8e1d1d968bdf0b8a35335b060d92a9d7d7 (patch) | |
tree | 6e9a4b35f11de5ad0e4f422e0a6d268b5270befd /src/Crypto/Internal/DeepSeq.hs | |
parent | f75d515bc0100e5ca372d592aa2f5f4ff2fc858c (diff) |
WIP: Tox encryption.
Diffstat (limited to 'src/Crypto/Internal/DeepSeq.hs')
-rw-r--r-- | src/Crypto/Internal/DeepSeq.hs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/Crypto/Internal/DeepSeq.hs b/src/Crypto/Internal/DeepSeq.hs new file mode 100644 index 00000000..9da79881 --- /dev/null +++ b/src/Crypto/Internal/DeepSeq.hs | |||
@@ -0,0 +1,33 @@ | |||
1 | -- | | ||
2 | -- Module : Crypto.Internal.DeepSeq | ||
3 | -- License : BSD-style | ||
4 | -- Maintainer : Vincent Hanquez <vincent@snarc.org> | ||
5 | -- Stability : experimental | ||
6 | -- Portability : unknown | ||
7 | -- | ||
8 | -- Simple abstraction module to allow compilation without deepseq | ||
9 | -- by defining our own NFData class if not compiling with deepseq | ||
10 | -- support. | ||
11 | -- | ||
12 | {-# LANGUAGE CPP #-} | ||
13 | module Crypto.Internal.DeepSeq | ||
14 | ( NFData(..) | ||
15 | ) where | ||
16 | |||
17 | #ifdef WITH_DEEPSEQ_SUPPORT | ||
18 | import Control.DeepSeq | ||
19 | #else | ||
20 | import Data.Word | ||
21 | import Data.ByteArray | ||
22 | |||
23 | class NFData a where rnf :: a -> () | ||
24 | |||
25 | instance NFData Word8 where rnf w = w `seq` () | ||
26 | instance NFData Word16 where rnf w = w `seq` () | ||
27 | instance NFData Word32 where rnf w = w `seq` () | ||
28 | instance NFData Word64 where rnf w = w `seq` () | ||
29 | |||
30 | instance NFData Bytes where rnf b = b `seq` () | ||
31 | instance NFData ScrubbedBytes where rnf b = b `seq` () | ||
32 | |||
33 | #endif | ||