diff options
Diffstat (limited to 'editor/state')
-rwxr-xr-x | editor/state/dune | 1 | ||||
-rwxr-xr-x | editor/state/state.ml | 3 | ||||
-rwxr-xr-x | editor/state/state.mli | 16 |
3 files changed, 20 insertions, 0 deletions
diff --git a/editor/state/dune b/editor/state/dune index dd405a1..b61174d 100755 --- a/editor/state/dune +++ b/editor/state/dune @@ -2,6 +2,7 @@ (name state) (libraries brr + application prosemirror plugins ) diff --git a/editor/state/state.ml b/editor/state/state.ml index 569f26c..649473c 100755 --- a/editor/state/state.ml +++ b/editor/state/state.ml @@ -14,6 +14,7 @@ type t = ; window : Brr.El.t list ; pm : PM.t } +type state = t (** Compare two states together. @@ -86,3 +87,5 @@ let init ; pm } + +include Application.Make(struct type t = state end) diff --git a/editor/state/state.mli b/editor/state/state.mli index 6984067..20d5288 100755 --- a/editor/state/state.mli +++ b/editor/state/state.mli @@ -11,6 +11,7 @@ type t = ; pm : Prosemirror.t } + val eq: t -> t -> bool (** Update the title element according to the page. *) @@ -26,3 +27,18 @@ val load_page (** Initialise a new state *) val init : Prosemirror.t -> Prosemirror.View.editor_view Js.t -> float -> Jstr.t option -> t + +type state = t +module type Event = sig + + type t + + val update: t -> state -> state + +end + +type event = E : 'a * (module Event with type t = 'a) -> event + +(** Simple helper for the main event loop *) +val run + : ?eq:(t -> t -> bool) -> t -> event Note.E.t -> state Note.S.t |