Iced + Rusqlite + Chrono: Problem with custom error type
@eechris
·
2026-04-25
·
via The Rust Programming Language Forum - Latest posts
I am trying to learn to better harness rusts functionality. In an attempt to do so I am using a custom error which will allow the use of ? to handle both chrono and rusqlite errors in the returned result from a function. The code compiles/runs and the correct string values are returned. But I get several warnings which I do not understand how to resolve. Below is the function and the warning messages. Any assistance will be appreciated. #[derive(Debug)] pub enum SqlChronoError { SqlError(rusqlite::Error), ChronoError(chrono::ParseError), } impl From<rusqlite::Error> for SqlChronoError { fn from(error: rusqlite::Error) -> Self { SqlChronoError::SqlError(error) } } impl From<chrono::ParseError> for SqlChronoError { fn from(error: chrono::ParseError) -> Self { SqlChronoError::ChronoError(error) } } pub async fn get_start_dates() -> Result<Vec<String>, SqlChronoError> { let db_file_path: &str = "stock_data.db"; let conn = Connection::open(db_file_path)?; let lastest_datetime_string = conn.query_row("SELECT MAX(date) FROM data", [], |row| row.get(0).map(|x: String| x.to_string()))?; let latest_datetime = NaiveDate::parse_from_str(&lastest_datetime_string, "%Y-%m-%d")?; const OFFSET_DAYS: [Days; 4] = [Days::new(90), Days::new(180), Days::new(365), Days::new(3650)]; let start_dates = OFFSET_DAYS.iter() .filter_map(|offset| latest_datetime.checked_sub_days(*offset)) .map(|nav_date| nav_date.format("%Y-%m-%d").to_string()) .collect::<Vec<String>>(); Ok(start_dates) } warning: field `0` is never read --> src/functions/start_dates.rs:6:14 | 6 | SqlError(rusqlite::Error), | -------- ^^^^^^^^^^^^^^^ | | | field in this variant | = note: `SqlChronoError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field | 6 - SqlError(rusqlite::Error), 6 + SqlError(()), | warning: field `0` is never read --> src/functions/start_dates.rs:7:17 | 7 | ChronoError(chrono::ParseError), | ----------- ^^^^^^^^^^^^^^^^^^ | | | field in this variant | = note: `SqlChronoError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field | 7 - ChronoError(chrono::ParseError), 7 + ChronoError(()), | warning: `csvtosql` (bin "csvtosql") generated 2 warnings
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。