-module(aion@workflow). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/aion/workflow.gleam"). -export([run/1, all/1, race/1, map/2, now/0, random/0, random_int/2, sleep/1, start_timer/2, cancel_timer/1, with_timeout/2, continue_as_new/2, 'receive'/1, timer_id/1, spawn/6, spawn_and_wait/6, timestamp_to_milliseconds/1, define/5, name/1, input_codec/1, output_codec/1, error_codec/1, entry_fn/1]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. ?MODULEDOC( " Workflow authoring surface.\n" "\n" " This module is an aggregator only: it forwards declarations from the\n" " workflow submodules and contains no workflow business logic. `run` is the\n" " only recorded activity dispatch surface in this brief; deterministic time\n" " and random values come from AD through `aion/internal/ffi`.\n" ). -file("src/aion/workflow.gleam", 35). -spec run(aion@activity:activity(any(), FME)) -> {ok, FME} | {error, aion@error:activity_error()}. run(Activity) -> aion@workflow@run:run(Activity). -file("src/aion/workflow.gleam", 41). -spec all(list(aion@activity:activity(any(), FMK))) -> {ok, list(FMK)} | {error, aion@error:activity_error()}. all(Activities) -> aion@workflow@concurrency:all(Activities). -file("src/aion/workflow.gleam", 47). -spec race(list(aion@activity:activity(any(), FMS))) -> {ok, FMS} | {error, aion@error:activity_error()}. race(Activities) -> aion@workflow@concurrency:race(Activities). -file("src/aion/workflow.gleam", 53). -spec map(list(FMY), fun((FMY) -> aion@activity:activity(any(), FNB))) -> {ok, list(FNB)} | {error, aion@error:activity_error()}. map(Items, To_activity) -> aion@workflow@concurrency:map(Items, To_activity). -file("src/aion/workflow.gleam", 60). -spec now() -> {ok, aion@workflow@run:timestamp()} | {error, aion@error:engine_error()}. now() -> aion@workflow@run:now(). -file("src/aion/workflow.gleam", 64). -spec random() -> {ok, float()} | {error, aion@error:engine_error()}. random() -> aion@workflow@run:random(). -file("src/aion/workflow.gleam", 68). -spec random_int(integer(), integer()) -> {ok, integer()} | {error, aion@error:engine_error()}. random_int(Min, Max) -> aion@workflow@run:random_int(Min, Max). -file("src/aion/workflow.gleam", 72). -spec sleep(aion@duration:duration()) -> {ok, nil} | {error, aion@error:engine_error()}. sleep(Duration) -> aion@workflow@timer:sleep(Duration). -file("src/aion/workflow.gleam", 76). -spec start_timer(binary(), aion@duration:duration()) -> {ok, aion@workflow@timer:timer_ref()} | {error, aion@error:engine_error()}. start_timer(Name, Duration) -> aion@workflow@timer:start_timer(Name, Duration). -file("src/aion/workflow.gleam", 83). -spec cancel_timer(aion@workflow@timer:timer_ref()) -> {ok, nil} | {error, aion@error:engine_error()}. cancel_timer(Reference) -> aion@workflow@timer:cancel_timer(Reference). -file("src/aion/workflow.gleam", 87). -spec with_timeout( fun(() -> {ok, FNT} | {error, FNU}), aion@duration:duration() ) -> {ok, FNT} | {error, aion@error:timeout_result_error(FNU)}. with_timeout(Operation, Deadline) -> aion@workflow@timer:with_timeout(Operation, Deadline). -file("src/aion/workflow.gleam", 94). -spec continue_as_new(FOA, aion@codec:codec(FOA)) -> {ok, nil} | {error, aion@error:workflow_error()}. continue_as_new(Input, Input_codec) -> aion@workflow@continuation:continue_as_new(Input, Input_codec). -file("src/aion/workflow.gleam", 101). -spec 'receive'(aion@signal:signal_ref(FOE)) -> {ok, FOE} | {error, aion@error:receive_error()}. 'receive'(Reference) -> aion@signal:'receive'(Reference). -file("src/aion/workflow.gleam", 107). -spec timer_id(aion@workflow@timer:timer_ref()) -> binary(). timer_id(Reference) -> aion@workflow@timer:timer_id(Reference). -file("src/aion/workflow.gleam", 111). -spec spawn( binary(), fun((FOI) -> {ok, FOJ} | {error, FOK}), FOI, aion@codec:codec(FOI), aion@codec:codec(FOJ), aion@codec:codec(FOK) ) -> {ok, aion@child:child_handle(FOJ, FOK)} | {error, aion@error:engine_error()}. spawn(Name, Workflow_fn, Input, Input_codec, Output_codec, Error_codec) -> aion@child:spawn( Name, Workflow_fn, Input, Input_codec, Output_codec, Error_codec ). -file("src/aion/workflow.gleam", 122). -spec spawn_and_wait( binary(), fun((FOU) -> {ok, FOV} | {error, FOW}), FOU, aion@codec:codec(FOU), aion@codec:codec(FOV), aion@codec:codec(FOW) ) -> {ok, FOV} | {error, aion@error:child_error(FOW)}. spawn_and_wait(Name, Workflow_fn, Input, Input_codec, Output_codec, Error_codec) -> aion@child:spawn_and_wait( Name, Workflow_fn, Input, Input_codec, Output_codec, Error_codec ). -file("src/aion/workflow.gleam", 140). -spec timestamp_to_milliseconds(aion@workflow@run:timestamp()) -> integer(). timestamp_to_milliseconds(Timestamp) -> aion@workflow@run:timestamp_to_milliseconds(Timestamp). -file("src/aion/workflow.gleam", 144). -spec define( binary(), aion@codec:codec(FPF), aion@codec:codec(FPH), aion@codec:codec(FPJ), fun((FPF) -> {ok, FPH} | {error, FPJ}) ) -> aion@workflow@define:workflow_definition(FPF, FPH, FPJ). define(Name, Input_codec, Output_codec, Error_codec, Entry_fn) -> aion@workflow@define:define( Name, Input_codec, Output_codec, Error_codec, Entry_fn ). -file("src/aion/workflow.gleam", 154). -spec name(aion@workflow@define:workflow_definition(any(), any(), any())) -> binary(). name(Definition) -> aion@workflow@define:name(Definition). -file("src/aion/workflow.gleam", 160). -spec input_codec(aion@workflow@define:workflow_definition(FPW, any(), any())) -> aion@codec:codec(FPW). input_codec(Definition) -> aion@workflow@define:input_codec(Definition). -file("src/aion/workflow.gleam", 166). -spec output_codec(aion@workflow@define:workflow_definition(any(), FQE, any())) -> aion@codec:codec(FQE). output_codec(Definition) -> aion@workflow@define:output_codec(Definition). -file("src/aion/workflow.gleam", 172). -spec error_codec(aion@workflow@define:workflow_definition(any(), any(), FQM)) -> aion@codec:codec(FQM). error_codec(Definition) -> aion@workflow@define:error_codec(Definition). -file("src/aion/workflow.gleam", 178). -spec entry_fn(aion@workflow@define:workflow_definition(FQR, FQS, FQT)) -> fun((FQR) -> {ok, FQS} | {error, FQT}). entry_fn(Definition) -> aion@workflow@define:entry_fn(Definition).