From c22cc3b348bdcb446fb0e44070da36fdf6b05800 Mon Sep 17 00:00:00 2001 From: tslil Date: Sat, 21 Mar 2026 08:49:35 +0000 Subject: big rework to support evaluation of selection functions, WiP --- rprt-engine/src/monad.rs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'rprt-engine/src/monad.rs') 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 for EvaluationError { +impl From for MonadError { fn from(err: SelectionError) -> Self { - EvaluationError::Selection(err) + MonadError::Selection(err) } } -impl From for EvaluationError { +impl From for MonadError { fn from(err: GroupedChangeError) -> Self { - EvaluationError::GroupedChange(err) + MonadError::GroupedChange(err) } } pub struct EditorStateMonad { - func: Box EvaluationResult>, + func: Box 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, strategy: EvaluationStrategy, state: &mut EditorState, - ) -> Result { + ) -> Result { match strategy { EvaluationStrategy::Sequential => { let mut last_selection = Selection::empty(); -- cgit v1.2.3