summaryrefslogtreecommitdiff
path: root/src/cli.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/cli.rs')
-rw-r--r--src/cli.rs13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/cli.rs b/src/cli.rs
index 57c5c07..703bf19 100644
--- a/src/cli.rs
+++ b/src/cli.rs
@@ -84,11 +84,10 @@ impl Args {
/// # Errors
///
/// Will return `Err` if the server is unable to start, or terminates
- /// prematurely. The specific [`Error`] variant will expose the cause
+ /// prematurely. The returned error contains a user-facing explanation
/// of the failure.
- pub async fn run(self) -> Result<(), Error> {
+ pub async fn run(self) -> Result<(), impl std::error::Error> {
self.umask.set();
-
let pool = self.pool().await?;
let app = App::from(pool);
@@ -104,7 +103,7 @@ impl Args {
println!("{started_msg}");
serve.await?;
- Ok(())
+ Result::<_, Error>::Ok(())
}
async fn listener(&self) -> io::Result<net::TcpListener> {
@@ -138,14 +137,10 @@ fn started_msg(listener: &net::TcpListener) -> io::Result<String> {
Ok(format!("listening on http://{local_addr}/"))
}
-/// Errors that can be raised by [`Args::run`].
#[derive(Debug, thiserror::Error)]
#[error(transparent)]
-pub enum Error {
- /// Failure due to `io::Error`. See [`io::Error`].
+enum Error {
Io(#[from] io::Error),
- /// Failure due to a database initialization error. See [`db::Error`].
Database(#[from] db::Error),
- /// Failure due to invalid umask-related options.
Umask(#[from] umask::Error),
}