midas/defunctionalise
Types
pub type Effect(r, key) {
Done(r)
Bundle(
module: String,
function: String,
resume: fn(Result(String, String)) -> Effect(r, key),
)
ExportJsonWebKey(
key: key,
resume: fn(json.Json) -> Effect(r, key),
)
Follow(
uri: uri.Uri,
resume: fn(Result(uri.Uri, Nil)) -> Effect(r, key),
)
Fetch(
request: request.Request(BitArray),
resume: fn(
Result(response.Response(BitArray), effect.FetchError),
) -> Effect(r, key),
)
GenerateKeyPair(
algorithm: effect.KeyPairAlgorithm,
extractable: Bool,
usages: List(effect.KeyUsage),
resume: fn(Result(effect.KeyPair(key), String)) -> Effect(
r,
key,
),
)
Hash(
algorithm: effect.HashAlgorithm,
bytes: BitArray,
resume: fn(BitArray) -> Effect(r, key),
)
Log(message: String, resume: fn(Nil) -> Effect(r, key))
ReadDirectory(
directory: String,
resume: fn(Result(List(String), String)) -> Effect(r, key),
)
ReadFile(
file: String,
resume: fn(Result(BitArray, String)) -> Effect(r, key),
)
Serve(
port: option.Option(Int),
handle: fn(request.Request(BitArray)) -> response.Response(
BitArray,
),
resume: fn(Result(Int, String)) -> Effect(r, key),
)
Sign(
algorithm: effect.SignAlgorithm,
key: key,
data: BitArray,
resume: fn(Result(BitArray, String)) -> Effect(r, key),
)
StrongRandom(
length: Int,
resume: fn(BitArray) -> Effect(r, key),
)
WriteFile(
file: String,
bytes: BitArray,
resume: fn(Result(Nil, String)) -> Effect(r, key),
)
Visit(
uri: uri.Uri,
resume: fn(Result(Nil, String)) -> Effect(r, key),
)
Zip(
files: List(#(String, BitArray)),
resume: fn(Result(BitArray, Nil)) -> Effect(r, key),
)
UnixNow(resume: fn(Int) -> Effect(r, key))
}
Constructors
-
Done(r) -
Bundle( module: String, function: String, resume: fn(Result(String, String)) -> Effect(r, key), ) -
-
-
Fetch( request: request.Request(BitArray), resume: fn( Result(response.Response(BitArray), effect.FetchError), ) -> Effect(r, key), ) -
GenerateKeyPair( algorithm: effect.KeyPairAlgorithm, extractable: Bool, usages: List(effect.KeyUsage), resume: fn(Result(effect.KeyPair(key), String)) -> Effect( r, key, ), ) -
Hash( algorithm: effect.HashAlgorithm, bytes: BitArray, resume: fn(BitArray) -> Effect(r, key), ) -
Log(message: String, resume: fn(Nil) -> Effect(r, key)) -
ReadDirectory( directory: String, resume: fn(Result(List(String), String)) -> Effect(r, key), ) -
ReadFile( file: String, resume: fn(Result(BitArray, String)) -> Effect(r, key), ) -
Serve( port: option.Option(Int), handle: fn(request.Request(BitArray)) -> response.Response( BitArray, ), resume: fn(Result(Int, String)) -> Effect(r, key), ) -
Sign( algorithm: effect.SignAlgorithm, key: key, data: BitArray, resume: fn(Result(BitArray, String)) -> Effect(r, key), ) -
StrongRandom(length: Int, resume: fn(BitArray) -> Effect(r, key)) -
WriteFile( file: String, bytes: BitArray, resume: fn(Result(Nil, String)) -> Effect(r, key), ) -
-
Zip( files: List(#(String, BitArray)), resume: fn(Result(BitArray, Nil)) -> Effect(r, key), ) -
UnixNow(resume: fn(Int) -> Effect(r, key))
Values
pub fn bundle(
module: String,
function: String,
) -> fn(fn(Result(String, String)) -> Effect(r, key)) -> Effect(
r,
key,
)
pub fn fetch(
request: request.Request(BitArray),
) -> fn(
fn(Result(response.Response(BitArray), effect.FetchError)) -> Effect(
r,
key,
),
) -> Effect(r, key)
pub fn follow(
uri: uri.Uri,
) -> fn(fn(Result(uri.Uri, Nil)) -> Effect(r, key)) -> Effect(
r,
key,
)
pub fn generate_keypair(
algorithm: effect.KeyPairAlgorithm,
extractable: Bool,
usages: List(effect.KeyUsage),
) -> fn(fn(Result(effect.KeyPair(key), String)) -> Effect(r, key)) -> Effect(
r,
key,
)
pub fn hash(
algorithm: effect.HashAlgorithm,
bytes: BitArray,
) -> fn(fn(BitArray) -> Effect(r, key)) -> Effect(r, key)
pub fn read_directory(
directory: String,
) -> fn(fn(Result(List(String), String)) -> Effect(r, key)) -> Effect(
r,
key,
)
pub fn read_file(
file: String,
) -> fn(fn(Result(BitArray, String)) -> Effect(r, key)) -> Effect(
r,
key,
)
pub fn serve(
port: option.Option(Int),
handle: fn(request.Request(BitArray)) -> response.Response(
BitArray,
),
) -> fn(fn(Result(Int, String)) -> Effect(r, key)) -> Effect(
r,
key,
)
pub fn sign(
algorithm: effect.SignAlgorithm,
key: key,
data: BitArray,
) -> fn(fn(Result(BitArray, String)) -> Effect(r, key)) -> Effect(
r,
key,
)