aboutsummaryrefslogtreecommitdiff
path: root/rprt-engine/src/monad.rs
diff options
context:
space:
mode:
authortslil <tslil@posteo.de>2026-03-21 08:49:35 +0000
committertslil <tslil@posteo.de>2026-03-21 17:26:50 +0000
commitc22cc3b348bdcb446fb0e44070da36fdf6b05800 (patch)
tree81371ff735529e7b2a5b1727be9c8b06123609e6 /rprt-engine/src/monad.rs
parent5a5da7bc299bee12072e421d1936554690e34dd6 (diff)
big rework to support evaluation of selection functions, WiP
Diffstat (limited to 'rprt-engine/src/monad.rs')
-rw-r--r--rprt-engine/src/monad.rs20
1 files changed, 10 insertions, 10 deletions
diff --git a/rprt-engine/src/monad.rs b/rprt-engine/src/monad.rs
index 34ff46b..ac35722 100644
--- a/rprt-engine/src/monad.rs
+++ b/rprt-engine/src/monad.rs
@@ -1,6 +1,6 @@
use crate::{
selection::{Selection, SelectionError},
- state::{EditorState, EvaluationResult, GroupedChangeError},
+ state::{EditorState, GroupedChangeError, StateResult},
};
pub enum EvaluationStrategy {
@@ -9,33 +9,33 @@ pub enum EvaluationStrategy {
}
#[derive(Debug)]
-pub enum EvaluationError {
+pub enum MonadError {
Selection(SelectionError),
GroupedChange(GroupedChangeError),
}
-impl From<SelectionError> for EvaluationError {
+impl From<SelectionError> for MonadError {
fn from(err: SelectionError) -> Self {
- EvaluationError::Selection(err)
+ MonadError::Selection(err)
}
}
-impl From<GroupedChangeError> for EvaluationError {
+impl From<GroupedChangeError> for MonadError {
fn from(err: GroupedChangeError) -> Self {
- EvaluationError::GroupedChange(err)
+ MonadError::GroupedChange(err)
}
}
pub struct EditorStateMonad {
- func: Box<dyn Fn(&EditorState) -> EvaluationResult>,
+ func: Box<dyn Fn(&EditorState) -> StateResult>,
}
impl EditorStateMonad {
- pub fn new(f: impl Fn(&EditorState) -> EvaluationResult + 'static) -> Self {
+ pub fn new(f: impl Fn(&EditorState) -> StateResult + 'static) -> Self {
Self { func: Box::new(f) }
}
- pub fn run(&self, state: &EditorState) -> EvaluationResult {
+ pub fn run(&self, state: &EditorState) -> StateResult {
(self.func)(state)
}
@@ -43,7 +43,7 @@ impl EditorStateMonad {
monads: Vec<EditorStateMonad>,
strategy: EvaluationStrategy,
state: &mut EditorState,
- ) -> Result<Selection, EvaluationError> {
+ ) -> Result<Selection, MonadError> {
match strategy {
EvaluationStrategy::Sequential => {
let mut last_selection = Selection::empty();