@@ -7,7 +7,7 @@ use crate::ltl::cm::CharMatrix;
77
88#[ derive( Debug , Copy , Clone , PartialEq , Eq , Hash ) ]
99pub enum LtlUnaryOp {
10- // Not,
10+ Not ,
1111 WeakNext ,
1212 StrongNext ,
1313 Finally ,
@@ -17,14 +17,13 @@ pub enum LtlUnaryOp {
1717impl LtlUnaryOp {
1818 pub ( crate ) fn all ( ) -> Vec < LtlUnaryOp > {
1919 use LtlUnaryOp :: * ;
20- vec ! [ WeakNext , StrongNext , Finally , Globally ]
21- // vec![Not, WeakNext, StrongNext, Finally, Globally]
20+ vec ! [ Not , WeakNext , StrongNext , Finally , Globally ]
2221 }
2322
2423 pub ( crate ) fn is_boolean_monotone ( & self ) -> bool {
2524 match self {
26- // LtlUnaryOp::Not => true,
27- LtlUnaryOp :: WeakNext
25+ LtlUnaryOp :: Not
26+ | LtlUnaryOp :: WeakNext
2827 | LtlUnaryOp :: StrongNext
2928 | LtlUnaryOp :: Finally
3029 | LtlUnaryOp :: Globally => false ,
@@ -33,7 +32,7 @@ impl LtlUnaryOp {
3332
3433 pub ( crate ) fn apply_cm ( op : Self , cm : & CharMatrix ) -> CharMatrix {
3534 match op {
36- // LtlUnaryOp::Not => cm.not(),
35+ LtlUnaryOp :: Not => cm. not ( ) ,
3736 LtlUnaryOp :: WeakNext => cm. weak_next ( ) ,
3837 LtlUnaryOp :: StrongNext => cm. strong_next ( ) ,
3938 LtlUnaryOp :: Finally => cm. finally ( ) ,
@@ -55,13 +54,15 @@ impl<'a> TryFrom<&'a str> for LtlUnaryOp {
5554 ///
5655 /// | String | Result |
5756 /// |:-------|:---------------------|
57+ /// | `"!"` | [`LtlUnaryOp::Not`] |
5858 /// | `"X"` | [`LtlUnaryOp::WeakNext`] |
5959 /// | `"X[!]"` | [`LtlUnaryOp::StrongNext`] |
6060 /// | `"F"` | [`LtlUnaryOp::Finally`] |
6161 /// | `"G"` | [`LtlUnaryOp::Globally`]|
62- /// | Other value | `Error` |
62+ /// | Other value | [`InvalidUnaryOp`] |
6363 fn try_from ( value : & ' a str ) -> Result < Self , Self :: Error > {
6464 match value {
65+ "!" => Ok ( LtlUnaryOp :: Not ) ,
6566 "X" => Ok ( LtlUnaryOp :: WeakNext ) ,
6667 "X[!]" => Ok ( LtlUnaryOp :: StrongNext ) ,
6768 "F" => Ok ( LtlUnaryOp :: Finally ) ,
@@ -74,6 +75,7 @@ impl<'a> TryFrom<&'a str> for LtlUnaryOp {
7475impl Display for LtlUnaryOp {
7576 fn fmt ( & self , f : & mut std:: fmt:: Formatter < ' _ > ) -> std:: fmt:: Result {
7677 match self {
78+ LtlUnaryOp :: Not => write ! ( f, "!" ) ,
7779 LtlUnaryOp :: WeakNext => write ! ( f, "X" ) ,
7880 LtlUnaryOp :: StrongNext => write ! ( f, "X[!]" ) ,
7981 LtlUnaryOp :: Finally => write ! ( f, "F" ) ,
@@ -88,6 +90,9 @@ mod test {
8890
8991 #[ test]
9092 fn string_try_into_unary_op ( ) {
93+ let parsed = "!" . try_into ( ) ;
94+ assert_eq ! ( parsed, Ok ( LtlUnaryOp :: Not ) ) ;
95+
9196 let parsed = "X" . try_into ( ) ;
9297 assert_eq ! ( parsed, Ok ( LtlUnaryOp :: WeakNext ) ) ;
9398
@@ -105,7 +110,7 @@ mod test {
105110 }
106111
107112 #[ test]
108- fn binary_op_display_then_parse_is_ident ( ) {
113+ fn unary_op_display_then_parse_is_ident ( ) {
109114 for op in LtlUnaryOp :: all ( ) {
110115 assert_eq ! ( Ok ( op) , format!( "{op}" ) . as_str( ) . try_into( ) )
111116 }
0 commit comments