diff --git a/Cargo.toml b/Cargo.toml index e21ce09..6992507 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ itertools = "0.13" gstreamer = "0.23" regex = "1.3" lazy_static = "1.4" -failure = "0.1.8" +thiserror = "2.0" anyhow = "1" [[example]] diff --git a/examples/check-latency.rs b/examples/check-latency.rs index 200b91c..13f8de5 100644 --- a/examples/check-latency.rs +++ b/examples/check-latency.rs @@ -8,7 +8,6 @@ // Generate input logs with: GST_DEBUG="GST_TRACER:7" GST_TRACERS=latency -use failure::Error; use gst_log_parser::parse; use gstreamer::{ClockTime, DebugLevel}; use std::fs::File; @@ -40,7 +39,7 @@ struct Opt { command: Command, } -fn main() -> Result<(), Error> { +fn main() -> Result<(), anyhow::Error> { let opt = Opt::from_args(); let input = File::open(opt.input)?; diff --git a/examples/flow.rs b/examples/flow.rs index 3beb3de..954dd35 100644 --- a/examples/flow.rs +++ b/examples/flow.rs @@ -8,7 +8,6 @@ // Generate input logs with: GST_DEBUG="GST_TRACER:7" GST_TRACERS=stats -use failure::Error; use gnuplot::*; use gst_log_parser::parse; use gstreamer::{ClockTime, DebugLevel, Structure}; @@ -266,7 +265,7 @@ impl Flow { } } -fn main() -> Result<(), Error> { +fn main() -> Result<(), anyhow::Error> { let opt = Opt::from_args(); let input = File::open(opt.input)?; let mut flow = Flow::new(opt.command); diff --git a/examples/latency.rs b/examples/latency.rs index b3c0ad5..60049ab 100644 --- a/examples/latency.rs +++ b/examples/latency.rs @@ -8,7 +8,6 @@ // Generate input logs with: GST_DEBUG="GST_TRACER:7" GST_TRACERS=latency\(flags="pipeline+element+reported"\) -use failure::Error; use gst_log_parser::parse; use gstreamer::{ClockTime, DebugLevel}; use itertools::Itertools; @@ -43,7 +42,7 @@ impl Count { } } -fn main() -> Result<(), Error> { +fn main() -> Result<(), anyhow::Error> { let opt = Opt::from_args(); let input = File::open(opt.input)?; diff --git a/src/lib.rs b/src/lib.rs index 8844cea..3cb8567 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -15,11 +15,11 @@ use std::io::Read; use std::str; use std::str::FromStr; -use failure::Fail; use gst::{ClockTime, DebugLevel, Structure}; use gstreamer as gst; use lazy_static::lazy_static; use regex::Regex; +use thiserror::Error; #[derive(Debug, PartialEq)] pub enum TimestampField { @@ -43,19 +43,19 @@ pub enum Token { Object, } -#[derive(Debug, Fail, PartialEq)] +#[derive(Debug, Error, PartialEq)] pub enum ParsingError { - #[fail(display = "invalid debug level: {}", name)] + #[error("invalid debug level: {}", name)] InvalidDebugLevel { name: String }, - #[fail(display = "invalid timestamp: {} : {:?}", ts, field)] + #[error("invalid timestamp: {} : {:?}", ts, field)] InvalidTimestamp { ts: String, field: TimestampField }, - #[fail(display = "missing token: {:?}", t)] + #[error("missing token: {:?}", t)] MissingToken { t: Token }, - #[fail(display = "invalid PID: {}", pid)] + #[error("invalid PID: {}", pid)] InvalidPID { pid: String }, - #[fail(display = "missing location")] + #[error("missing location")] MissingLocation, - #[fail(display = "invalid line number: {}", line)] + #[error("invalid line number: {}", line)] InvalidLineNumber { line: String }, }