morph 0.1.0
Asynchronous bridge between GUI thread and business models
Loading...
Searching...
No Matches
form_session.hpp File Reference

FormSession: the reactive state of one form over a FormModel — drafts, encoded values, readiness, presentation rules, Choice options and submission. A controller in the sense of docs/spec/reactive/control.md: no toolkit, testable headless. More...

#include <algorithm>
#include <charconv>
#include <cstddef>
#include <cstdint>
#include <exception>
#include <expected>
#include <functional>
#include <memory>
#include <optional>
#include <span>
#include <stdexcept>
#include <string>
#include <string_view>
#include <system_error>
#include <utility>
#include <vector>
#include "../../attributes.hpp"
#include "../../core/completion.hpp"
#include "../../reactive/control.hpp"
#include "../../reactive/runtime.hpp"
#include "../../reactive/signal.hpp"
#include "../../render/i18n.hpp"
#include "../../render/locale_format.hpp"
#include "../i18n.hpp"
#include "detail/text.hpp"
#include "field_model.hpp"
#include "rules.hpp"
#include "values.hpp"

Go to the source code of this file.

Classes

struct  morph::forms::FormSessionOptions
 How a session reads numbers, dates and text. More...
class  morph::forms::RowState
 One collection row: the element's member fields. More...
class  morph::forms::FieldState
 The reactive state of one field: its draft and everything derived from it. More...
class  morph::forms::FormSession
 The reactive state of one form: a controller over a FormModel. More...

Typedefs

using morph::forms::Submitter = std::function<async::Completion<std::string>(std::string_view actionType, std::string bodyJson)>
 Executes a form's action: the action type and its JSON body in, the JSON reply out.
using morph::forms::ChoiceFetcher
 Executes a Choice's options action: the action and its JSON request in, the reply out.

Detailed Description

FormSession: the reactive state of one form over a FormModel — drafts, encoded values, readiness, presentation rules, Choice options and submission. A controller in the sense of docs/spec/reactive/control.md: no toolkit, testable headless.

Specified in docs/spec/forms/engine.md, "FormSession".

Definition in file form_session.hpp.

Typedef Documentation

◆ Submitter

using morph::forms::Submitter = std::function<async::Completion<std::string>(std::string_view actionType, std::string bodyJson)>

Executes a form's action: the action type and its JSON body in, the JSON reply out.

Definition at line 45 of file form_session.hpp.

◆ ChoiceFetcher

Initial value:
std::function<async::Completion<std::string>(std::string_view optionsAction, std::string bodyJson)>

Executes a Choice's options action: the action and its JSON request in, the reply out.

Definition at line 48 of file form_session.hpp.