midas/task
Types
pub type Effect(a, key) {
Done(a)
Abort(snag.Snag)
Bundle(
module: String,
function: String,
resume: fn(Result(String, String)) -> Effect(a, key),
)
ExportJsonWebKey(
key: key,
resume: fn(Result(json.Json, String)) -> Effect(a, key),
)
Follow(
uri: String,
resume: fn(Result(uri.Uri, Nil)) -> Effect(a, key),
)
Fetch(
request: request.Request(BitArray),
resume: fn(Result(response.Response(BitArray), FetchError)) -> Effect(
a,
key,
),
)
GenerateKeyPair(
algorithm: KeyPairAlgorithm,
extractable: Bool,
usages: List(KeyUsage),
resume: fn(Result(KeyPair(key), String)) -> Effect(a, key),
)
Hash(
algorithm: HashAlgorithm,
bytes: BitArray,
resume: fn(Result(BitArray, String)) -> Effect(a, key),
)
List(
directory: String,
resume: fn(Result(List(String), String)) -> Effect(a, key),
)
Log(
message: String,
resume: fn(Result(Nil, Nil)) -> Effect(a, key),
)
Read(
file: String,
resume: fn(Result(BitArray, String)) -> Effect(a, key),
)
Serve(
port: option.Option(Int),
handle: fn(request.Request(BitArray)) -> response.Response(
BitArray,
),
resume: fn(Result(Nil, String)) -> Effect(a, key),
)
Sign(
algorithm: SignAlgorithm,
key: key,
data: BitArray,
resume: fn(Result(BitArray, String)) -> Effect(a, key),
)
StrongRandom(
length: Int,
resume: fn(Result(BitArray, String)) -> Effect(a, key),
)
Write(
file: String,
bytes: BitArray,
resume: fn(Result(Nil, String)) -> Effect(a, key),
)
Visit(
uri: uri.Uri,
resume: fn(Result(Nil, String)) -> Effect(a, key),
)
Zip(
files: List(#(String, BitArray)),
resume: fn(Result(BitArray, Nil)) -> Effect(a, key),
)
UnixNow(resume: fn(Int) -> Effect(a, key))
}
Constructors
-
Done(a)
-
Abort(snag.Snag)
-
Bundle( module: String, function: String, resume: fn(Result(String, String)) -> Effect(a, key), )
-
-
-
Fetch( request: request.Request(BitArray), resume: fn(Result(response.Response(BitArray), FetchError)) -> Effect( a, key, ), )
-
GenerateKeyPair( algorithm: KeyPairAlgorithm, extractable: Bool, usages: List(KeyUsage), resume: fn(Result(KeyPair(key), String)) -> Effect(a, key), )
-
Hash( algorithm: HashAlgorithm, bytes: BitArray, resume: fn(Result(BitArray, String)) -> Effect(a, key), )
-
List( directory: String, resume: fn(Result(List(String), String)) -> Effect(a, key), )
-
Log( message: String, resume: fn(Result(Nil, Nil)) -> Effect(a, key), )
-
Read( file: String, resume: fn(Result(BitArray, String)) -> Effect(a, key), )
-
Serve( port: option.Option(Int), handle: fn(request.Request(BitArray)) -> response.Response( BitArray, ), resume: fn(Result(Nil, String)) -> Effect(a, key), )
-
Sign( algorithm: SignAlgorithm, key: key, data: BitArray, resume: fn(Result(BitArray, String)) -> Effect(a, key), )
-
StrongRandom( length: Int, resume: fn(Result(BitArray, String)) -> Effect(a, key), )
-
Write( file: String, bytes: BitArray, resume: fn(Result(Nil, String)) -> Effect(a, key), )
-
-
Zip( files: List(#(String, BitArray)), resume: fn(Result(BitArray, Nil)) -> Effect(a, key), )
-
UnixNow(resume: fn(Int) -> Effect(a, key))
pub type FetchError {
NetworkError(String)
UnableToReadBody
NotImplemented
}
Constructors
-
NetworkError(String)
-
UnableToReadBody
-
NotImplemented
pub type HashAlgorithm {
SHA1
SHA256
SHA384
SHA512
}
Constructors
-
SHA1
-
SHA256
-
SHA384
-
SHA512
pub type KeyPair(key) {
KeyPair(public: key, private: key)
}
Constructors
-
KeyPair(public: key, private: key)
pub type KeyPairAlgorithm {
EcKeyGenParams(name: String, named_curve: String)
}
Constructors
-
EcKeyGenParams(name: String, named_curve: String)
pub type KeyUsage {
CanEncrypt
CanDecrypt
CanSign
CanVerify
CanDeriveKey
CanDeriveBits
CanWrapKey
CanUnwrapKey
}
Constructors
-
CanEncrypt
-
CanDecrypt
-
CanSign
-
CanVerify
-
CanDeriveKey
-
CanDeriveBits
-
CanWrapKey
-
CanUnwrapKey
pub type SignAlgorithm {
EcdsaParams(hash: HashAlgorithm)
}
Constructors
-
EcdsaParams(hash: HashAlgorithm)
Values
pub fn expect_bundle(
task: Effect(a, b),
) -> Result(
#(String, String, fn(Result(String, String)) -> Effect(a, b)),
Effect(a, b),
)
pub fn expect_export_jwk(
task: Effect(a, b),
) -> Result(
#(b, fn(Result(json.Json, String)) -> Effect(a, b)),
Effect(a, b),
)
pub fn expect_fetch(
task: Effect(a, b),
) -> Result(
#(
request.Request(BitArray),
fn(Result(response.Response(BitArray), FetchError)) -> Effect(
a,
b,
),
),
Effect(a, b),
)
pub fn expect_follow(
task: Effect(a, b),
) -> Result(
#(String, fn(Result(uri.Uri, Nil)) -> Effect(a, b)),
Effect(a, b),
)
pub fn expect_generate_keypair(
task: Effect(a, b),
) -> Result(
#(
KeyPairAlgorithm,
Bool,
List(KeyUsage),
fn(Result(KeyPair(b), String)) -> Effect(a, b),
),
Effect(a, b),
)
pub fn expect_hash(
task: Effect(a, b),
) -> Result(
#(
HashAlgorithm,
BitArray,
fn(Result(BitArray, String)) -> Effect(a, b),
),
Effect(a, b),
)
pub fn expect_list(
task: Effect(a, b),
) -> Result(
#(String, fn(Result(List(String), String)) -> Effect(a, b)),
Effect(a, b),
)
pub fn expect_log(
task: Effect(a, b),
) -> Result(
#(String, fn(Result(Nil, Nil)) -> Effect(a, b)),
Effect(a, b),
)
pub fn expect_read(
task: Effect(a, b),
) -> Result(
#(String, fn(Result(BitArray, String)) -> Effect(a, b)),
Effect(a, b),
)
pub fn expect_serve(
task: Effect(a, b),
) -> Result(
#(
option.Option(Int),
fn(request.Request(BitArray)) -> response.Response(BitArray),
fn(Result(Nil, String)) -> Effect(a, b),
),
Effect(a, b),
)
pub fn expect_sign(
task: Effect(a, b),
) -> Result(
#(
SignAlgorithm,
b,
BitArray,
fn(Result(BitArray, String)) -> Effect(a, b),
),
Effect(a, b),
)
pub fn expect_strong_random(
task: Effect(a, b),
) -> Result(
#(Int, fn(Result(BitArray, String)) -> Effect(a, b)),
Effect(a, b),
)
pub fn expect_visit(
task: Effect(a, b),
) -> Result(
#(uri.Uri, fn(Result(Nil, String)) -> Effect(a, b)),
Effect(a, b),
)
pub fn expect_write(
task: Effect(a, b),
) -> Result(
#(String, BitArray, fn(Result(Nil, String)) -> Effect(a, b)),
Effect(a, b),
)
pub fn expect_zip(
task: Effect(a, b),
) -> Result(
#(
List(#(String, BitArray)),
fn(Result(BitArray, Nil)) -> Effect(a, b),
),
Effect(a, b),
)
pub fn fetch(
request: request.Request(BitArray),
) -> Effect(response.Response(BitArray), a)
pub fn generate_keypair(
algorithm: KeyPairAlgorithm,
extractable: Bool,
usages: List(KeyUsage),
) -> Effect(KeyPair(a), a)
pub fn hash(
algorithm: HashAlgorithm,
bytes: BitArray,
) -> Effect(BitArray, a)
pub fn proxy(
task: Effect(a, b),
scheme: http.Scheme,
host: String,
port: option.Option(Int),
prefix: String,
) -> Effect(a, b)
pub fn serve(
port: option.Option(Int),
handle: fn(request.Request(BitArray)) -> response.Response(
BitArray,
),
) -> Effect(Nil, a)
pub fn serve_static(
port: option.Option(Int),
files: List(#(String, BitArray)),
) -> Effect(Nil, a)
pub fn sign(
algorithm: SignAlgorithm,
key: a,
data: BitArray,
) -> Effect(BitArray, a)
pub fn strong_random(length: Int) -> Effect(BitArray, a)