Skip to content

Commit 1859f57

Browse files
committed
examples: Return std::process::ExitCode instead of exiting with std::process::exit
rust-lang/rust#77553 still exists on nightly-2025-01-30.
1 parent 30ddfdc commit 1859f57

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

examples/get.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ fn main() {
3333
}
3434

3535
fn try_main() -> Result<()> {
36-
let args = Args::parse()?;
36+
let Some(args) = Args::parse()? else { return Ok(()) };
3737

3838
let mut stdout = BufWriter::new(io::stdout().lock()); // Buffered because it is written with newline many times.
3939
match args.merged {
@@ -153,7 +153,7 @@ impl FromStr for Merged {
153153
}
154154

155155
impl Args {
156-
fn parse() -> Result<Self> {
156+
fn parse() -> Result<Option<Self>> {
157157
let mut format: Option<Format> = None;
158158
let mut merged: Option<Merged> = None;
159159

@@ -164,16 +164,16 @@ impl Args {
164164
Long("merged") if merged.is_none() => merged = Some(parser.value()?.parse()?),
165165
Short('h') | Long("help") => {
166166
print!("{USAGE}");
167-
std::process::exit(0);
167+
return Ok(None);
168168
}
169169
Short('V') | Long("version") => {
170170
println!("{} {}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION"));
171-
std::process::exit(0);
171+
return Ok(None);
172172
}
173173
_ => return Err(arg.unexpected().into()),
174174
}
175175
}
176176

177-
Ok(Self { format: format.unwrap_or_default(), merged: merged.unwrap_or_default() })
177+
Ok(Some(Self { format: format.unwrap_or_default(), merged: merged.unwrap_or_default() }))
178178
}
179179
}

0 commit comments

Comments
 (0)