@@ -5,8 +5,8 @@ use nom::bytes::complete::{tag, take_till, take_till1, take_while};
55use nom:: character:: complete:: { char, multispace0, space0, space1} ;
66use nom:: combinator:: { map, opt} ;
77use nom:: multi:: many0;
8- use nom:: sequence:: { delimited, preceded, tuple } ;
9- use nom:: IResult ;
8+ use nom:: sequence:: { delimited, preceded} ;
9+ use nom:: { IResult , Parser } ;
1010
1111use crate :: golang:: GoDeps ;
1212use crate :: { Package , PackageType , PackageVersion } ;
@@ -68,7 +68,7 @@ impl From<ModuleReplacement> for Package {
6868}
6969
7070pub fn parse ( input : & str ) -> IResult < & str , GoDeps > {
71- let ( _, directives) = many0 ( directive) ( input) ?;
71+ let ( _, directives) = many0 ( directive) . parse ( input) ?;
7272
7373 let mut required: Vec < Module > = Vec :: new ( ) ;
7474 let mut excluded: Vec < Module > = Vec :: new ( ) ;
@@ -126,28 +126,26 @@ pub fn parse(input: &str) -> IResult<&str, GoDeps> {
126126
127127fn directive ( input : & str ) -> IResult < & str , Directive < ' _ > > {
128128 let ( input, _) = take_while ( |c : char | c == '\n' ) ( input) ?;
129- alt ( ( module_directive, go_directive, require_directive, replace_directive, exclude_directive) ) (
130- input. trim ( ) ,
131- )
129+ alt ( ( module_directive, go_directive, require_directive, replace_directive, exclude_directive) )
130+ . parse ( input. trim ( ) )
132131}
133132
134133fn module_directive ( input : & str ) -> IResult < & str , Directive < ' _ > > {
135134 let ( input, module_name) =
136- preceded ( tuple ( ( tag ( "module" ) , space1) ) , take_till ( |c| c == '\n' ) ) ( input) ?;
135+ preceded ( ( tag ( "module" ) , space1) , take_till ( |c| c == '\n' ) ) . parse ( input) ?;
137136 Ok ( ( input, Directive :: Module ( module_name) ) )
138137}
139138
140139fn go_directive ( input : & str ) -> IResult < & str , Directive < ' _ > > {
141140 let ( input, go_version) =
142- preceded ( tuple ( ( tag ( "go" ) , space1) ) , take_till ( |c| c == '\n' ) ) ( input) ?;
141+ preceded ( ( tag ( "go" ) , space1) , take_till ( |c| c == '\n' ) ) . parse ( input) ?;
143142 Ok ( ( input, Directive :: Go ( go_version. trim ( ) ) ) )
144143}
145144
146145fn require_directive ( input : & str ) -> IResult < & str , Directive < ' _ > > {
147- let ( input, deps) = preceded (
148- tuple ( ( tag ( "require" ) , space1) ) ,
149- alt ( ( module_block, map ( require_spec, |r| vec ! [ r] ) ) ) ,
150- ) ( input) ?;
146+ let ( input, deps) =
147+ preceded ( ( tag ( "require" ) , space1) , alt ( ( module_block, map ( require_spec, |r| vec ! [ r] ) ) ) )
148+ . parse ( input) ?;
151149 Ok ( ( input, Directive :: Require ( deps) ) )
152150}
153151
@@ -158,7 +156,8 @@ fn require_spec(input: &str) -> IResult<&str, Module> {
158156 let ( input, _) = space0 ( input) ?;
159157
160158 // Check if there is a comment starting with "//".
161- let ( input, comments) = opt ( preceded ( tag ( "//" ) , take_till1 ( |c : char | c == '\n' ) ) ) ( input) ?;
159+ let ( input, comments) =
160+ opt ( preceded ( tag ( "//" ) , take_till1 ( |c : char | c == '\n' ) ) ) . parse ( input) ?;
162161
163162 // Determine if the comment indicates the module is indirect.
164163 let indirect = comments. is_some_and ( |s : & str | s. trim ( ) . eq ( "indirect" ) ) ;
@@ -168,10 +167,9 @@ fn require_spec(input: &str) -> IResult<&str, Module> {
168167}
169168
170169fn replace_directive ( input : & str ) -> IResult < & str , Directive < ' _ > > {
171- preceded ( tuple ( ( tag ( "replace" ) , space1) ) , alt ( ( replace_block, map ( replace_spec, |r| vec ! [ r] ) ) ) ) (
172- input,
173- )
174- . map ( |( next_input, reps) | ( next_input, Directive :: Replace ( reps) ) )
170+ preceded ( ( tag ( "replace" ) , space1) , alt ( ( replace_block, map ( replace_spec, |r| vec ! [ r] ) ) ) )
171+ . parse ( input)
172+ . map ( |( next_input, reps) | ( next_input, Directive :: Replace ( reps) ) )
175173}
176174
177175fn replace_spec ( input : & str ) -> IResult < & str , ModuleReplacement > {
@@ -187,13 +185,14 @@ fn replace_spec(input: &str) -> IResult<&str, ModuleReplacement> {
187185 } ;
188186
189187 // Consume "=>" with surrounding spaces.
190- let ( input, _) = tuple ( ( space1, tag ( "=>" ) , space1) ) ( input) ?;
188+ let ( input, _) = ( space1, tag ( "=>" ) , space1) . parse ( input) ?;
191189
192190 // Parse the destination path and optional version.
193- let ( input, ( dest_path, dest_version) ) = tuple ( (
191+ let ( input, ( dest_path, dest_version) ) = (
194192 take_till1 ( |c : char | c. is_whitespace ( ) ) ,
195193 opt ( preceded ( space1, take_till1 ( |c : char | c. is_whitespace ( ) ) ) ) ,
196- ) ) ( input) ?;
194+ )
195+ . parse ( input) ?;
197196
198197 let replacement = if let Some ( version) = dest_version {
199198 Replacement :: Module ( Module {
@@ -213,10 +212,9 @@ fn replace_spec(input: &str) -> IResult<&str, ModuleReplacement> {
213212}
214213
215214fn exclude_directive ( input : & str ) -> IResult < & str , Directive < ' _ > > {
216- preceded ( tuple ( ( tag ( "exclude" ) , space1) ) , alt ( ( module_block, map ( require_spec, |r| vec ! [ r] ) ) ) ) (
217- input,
218- )
219- . map ( |( next_input, deps) | ( next_input, Directive :: Exclude ( deps) ) )
215+ preceded ( ( tag ( "exclude" ) , space1) , alt ( ( module_block, map ( require_spec, |r| vec ! [ r] ) ) ) )
216+ . parse ( input)
217+ . map ( |( next_input, deps) | ( next_input, Directive :: Exclude ( deps) ) )
220218}
221219
222220fn parse_block < T , F > ( input : & str , line_parser : F ) -> IResult < & str , Vec < T > >
@@ -227,7 +225,8 @@ where
227225 char ( '(' ) ,
228226 many0 ( preceded ( multispace0, line_parser) ) ,
229227 preceded ( multispace0, char ( ')' ) ) ,
230- ) ( input)
228+ )
229+ . parse ( input)
231230}
232231
233232fn module_block ( input : & str ) -> IResult < & str , Vec < Module > > {
0 commit comments