From dd0bc9610cf0e6842f5d5ac67a73f2fd6f4eba2f Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Wed, 1 May 2024 23:41:47 -0400 Subject: Improve Haskell documentation and bild test Added docs to core libraries and expanded the Example.hs test to test for all the things I want to support in a build. --- Biz/Bild/Example.hs | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) (limited to 'Biz/Bild/Example.hs') diff --git a/Biz/Bild/Example.hs b/Biz/Bild/Example.hs index 87472bb..66812ba 100644 --- a/Biz/Bild/Example.hs +++ b/Biz/Bild/Example.hs @@ -1,9 +1,45 @@ +{-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE NoImplicitPrelude #-} -- : out example module Biz.Bild.Example where +-- Both internal and external language dependencies are detected automatically +-- by bild, for example here we import 'Crypto.Saltine' and list 'saltine' in +-- 'Deps/Haskell.nix' to indicate that this is the package we want made +-- available to bild, which will index the external package and record its +-- modules for lookup. import Alpha +import qualified Biz.Cli as Cli +import qualified Biz.Test as Test +import qualified Crypto.Saltine as Saltine +import qualified Crypto.Saltine.Core.SecretBox as Saltine main :: IO () -main = putStrLn "Hello world" +main = Cli.main <| Cli.Plan help move test pure + +move :: Cli.Arguments -> IO () +move _ = putStrLn "Hello world" + +test :: Test.Tree +test = + Test.group + "Biz.Bild.Example" + [ Test.unit "can use saltine package" <| do + Saltine.sodiumInit + k <- Saltine.newKey + n <- Saltine.newNonce + let msg = "foobar" + let encryptedMsg = Saltine.secretbox k n <| str "foobar" + Just msg Test.@=? str