Skip to content

Commit cbce028

Browse files
committed
lite refactoring
1 parent 5c8594d commit cbce028

File tree

2 files changed

+48
-57
lines changed

2 files changed

+48
-57
lines changed

rust/rustell/src/decode.rs

Lines changed: 39 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,31 @@ use chumsky::prelude::Parser;
33
use chumsky::prelude::*;
44
use chumsky::text::whitespace;
55

6-
pub fn expr<'src>() -> impl Parser<
7-
'src,
8-
&'src str,
9-
Vec<Expr<'src>>,
10-
extra::Err<Rich<'src, char>>,
6+
pub fn expr<'a>() -> impl Parser<
7+
'a,
8+
&'a str,
9+
Vec<Expr<'a>>,
10+
extra::Err<Rich<'a, char>>,
1111
> {
1212
choice((expr_use(), expr_other()))
1313
.repeated()
1414
.collect::<Vec<_>>()
1515
}
1616

17-
fn expr_use<'src>() -> impl Parser<
18-
'src,
19-
&'src str,
20-
Expr<'src>,
21-
extra::Err<Rich<'src, char>>,
22-
> {
17+
fn expr_use<'a>()
18+
-> impl Parser<'a, &'a str, Expr<'a>, extra::Err<Rich<'a, char>>>
19+
{
2320
just("use")
2421
.ignore_then(expr_use_rec())
2522
.then_ignore(lexeme(";").or_not())
2623
.map(Expr::Use)
2724
}
2825

29-
fn expr_use_rec<'src>() -> impl Parser<
30-
'src,
31-
&'src str,
32-
ExprUse<'src>,
33-
extra::Err<Rich<'src, char>>,
26+
fn expr_use_rec<'a>() -> impl Parser<
27+
'a,
28+
&'a str,
29+
ExprUse<'a>,
30+
extra::Err<Rich<'a, char>>,
3431
> {
3532
recursive(|expr_use_rec| {
3633
let item = expr_use_tok()
@@ -65,24 +62,18 @@ fn expr_use_rec<'src>() -> impl Parser<
6562
})
6663
}
6764

68-
fn expr_use_tok<'src>() -> impl Parser<
69-
'src,
70-
&'src str,
71-
&'src str,
72-
extra::Err<Rich<'src, char>>,
73-
> + Clone {
65+
fn expr_use_tok<'a>()
66+
-> impl Parser<'a, &'a str, &'a str, extra::Err<Rich<'a, char>>>
67+
+ Clone {
7468
token(text::ascii::ident()).and_is(
7569
keyword_except(&["crate", "super", "self", "Self"])
7670
.not(),
7771
)
7872
}
7973

80-
fn expr_other<'src>() -> impl Parser<
81-
'src,
82-
&'src str,
83-
Expr<'src>,
84-
extra::Err<Rich<'src, char>>,
85-
> {
74+
fn expr_other<'a>()
75+
-> impl Parser<'a, &'a str, Expr<'a>, extra::Err<Rich<'a, char>>>
76+
{
8677
any()
8778
.and_is(expr_use().not())
8879
.repeated()
@@ -91,40 +82,40 @@ fn expr_other<'src>() -> impl Parser<
9182
.map(Expr::Other)
9283
}
9384

94-
fn token<'src>(
85+
fn token<'a>(
9586
tok: impl Parser<
96-
'src,
97-
&'src str,
98-
&'src str,
99-
extra::Err<Rich<'src, char>>,
87+
'a,
88+
&'a str,
89+
&'a str,
90+
extra::Err<Rich<'a, char>>,
10091
> + Clone,
10192
) -> impl Parser<
102-
'src,
103-
&'src str,
104-
&'src str,
105-
extra::Err<Rich<'src, char>>,
93+
'a,
94+
&'a str,
95+
&'a str,
96+
extra::Err<Rich<'a, char>>,
10697
> + Clone {
10798
whitespace().or_not().ignore_then(tok)
10899
}
109100

110-
fn lexeme<'src>(
111-
seq: &'src str,
101+
fn lexeme<'a>(
102+
seq: &'a str,
112103
) -> impl Parser<
113-
'src,
114-
&'src str,
115-
&'src str,
116-
extra::Err<Rich<'src, char>>,
104+
'a,
105+
&'a str,
106+
&'a str,
107+
extra::Err<Rich<'a, char>>,
117108
> + Clone {
118109
token(just(seq))
119110
}
120111

121-
fn keyword_except<'src>(
112+
fn keyword_except<'a>(
122113
except: &[&str],
123114
) -> impl Parser<
124-
'src,
125-
&'src str,
126-
&'src str,
127-
extra::Err<Rich<'src, char>>,
115+
'a,
116+
&'a str,
117+
&'a str,
118+
extra::Err<Rich<'a, char>>,
128119
> + Clone {
129120
choice(
130121
[

rust/rustell/src/lib.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,19 @@ pub mod encode;
33
pub use chumsky::prelude::Parser;
44

55
#[derive(Eq, PartialEq, Debug, Clone)]
6-
pub enum Expr<'src> {
7-
Mod(&'src str),
8-
Use(ExprUse<'src>),
9-
Other(&'src str),
6+
pub enum Expr<'a> {
7+
Mod(&'a str),
8+
Use(ExprUse<'a>),
9+
Other(&'a str),
1010
}
1111

1212
#[derive(Eq, PartialEq, Debug, Clone)]
13-
pub enum ExprUse<'src> {
13+
pub enum ExprUse<'a> {
1414
Item {
15-
module: &'src str,
16-
rename: Option<&'src str>,
17-
nested: Option<Box<ExprUse<'src>>>,
15+
module: &'a str,
16+
rename: Option<&'a str>,
17+
nested: Option<Box<ExprUse<'a>>>,
1818
},
19-
Many(Vec<ExprUse<'src>>),
19+
Many(Vec<ExprUse<'a>>),
2020
Glob,
2121
}

0 commit comments

Comments
 (0)