1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
use super::KeeperError;
use super::ParResult;
use crate::merger::MergeCtxType;
use crate::ResolvedFold;
use crate::TracePos;
use thiserror::Error as ThisError;
#[derive(ThisError, Debug)]
pub enum StateFSMError {
#[error("par queue is empty, while par FSM is requested")]
ParQueueIsEmpty,
#[error("fold FSM for fold id {0} wasn't found")]
FoldFSMNotFound(u32),
#[error("overflow is occurred while calculating the entire len occupied by executed states corresponded to current par: '{0:?}'")]
ParLenOverflow(ParResult),
#[error("overflow is occurred while calculating the new position of a {2} slider for resolved par {0:?} and current position {1}'")]
ParPosOverflow(ParResult, TracePos, MergeCtxType),
#[error("underflow is occurred while calculating the new position of a {2} slider for resolved par {0:?} and current subtrace len {1}'")]
ParLenUnderflow(ParResult, usize, MergeCtxType),
#[error("overflow is occurred while calculating the new position of a {2} slider for resolved fold {0:?} and current position {1}'")]
FoldPosOverflow(ResolvedFold, TracePos, MergeCtxType),
#[error("underflow is occurred while calculating the new position of a {2} slider for resolved fold {0:?} and current subtrace len {1}'")]
FoldLenUnderflow(ResolvedFold, TracePos, MergeCtxType),
#[error(transparent)]
KeeperError(#[from] KeeperError),
}