diff options
Diffstat (limited to 'Types.hs')
-rw-r--r-- | Types.hs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/Types.hs b/Types.hs new file mode 100644 index 0000000..c41e30a --- /dev/null +++ b/Types.hs @@ -0,0 +1,35 @@ +module Types where + +import Data.ByteString +import Crypto.Hash as H + +-- | Things that the developer sees. +data Seen = Seen + { seenData :: ByteString + } + deriving (Show) + +-- | Things that the developer enters. +data Entered = Entered + { enteredData :: ByteString + , echoData :: ByteString + -- ^ Data that is expected to be Seen, but has not been received + -- at the time this was entered. + } + deriving (Show) + +-- | An activity (either Entered or Seen) with a pointer +-- to the Activity before this one. +-- +-- The Signature is over both the data in the activity, and its pointer. +data Activity a + = Activity a HashPointer Signature + | StartActivity a Signature + deriving (Show) + +data Signature = Signature ByteString + deriving (Show) + +-- | A SHA2 hash pointer to something that hashes to this value. +newtype HashPointer = HashPointer (H.Digest H.SHA256) + deriving (Show) |