Skip to main content

wp_primitives/fun/
fun_trait.rs

1use winnow::ModalResult as WResult;
2
3pub trait Fun0Builder {
4    fn fun_name() -> &'static str;
5    fn build() -> Self;
6}
7
8pub trait Fun1Builder {
9    type ARG1;
10    fn args1(data: &mut &str) -> WResult<Self::ARG1>;
11    fn fun_name() -> &'static str;
12    fn build(args: Self::ARG1) -> Self;
13}
14
15pub trait Fun2Builder {
16    type ARG1;
17    type ARG2;
18    fn args1(data: &mut &str) -> WResult<Self::ARG1>;
19    fn args2(data: &mut &str) -> WResult<Self::ARG2>;
20    fn fun_name() -> &'static str;
21    fn build(args: (Self::ARG1, Self::ARG2)) -> Self;
22}
23
24pub trait ParseNext<T> {
25    fn parse_next(input: &mut &str) -> WResult<T>;
26}