simplify: Drop unnecessary io::Error wrapper in State::decode
InvalidStateError is already Error + Send + Sync via thiserror,
so it boxes directly into BoxDynError — no intermediate wrapper needed.

Assisted-by: Claude Opus 4.6 via pi
change olvytwzxulwvtvylzyvnyzqypulkkqml
commit 267330485c5bf21f0b69829550af901f315b0ba1
author Alpha Chen <alpha@kejadlen.dev>
date
parent lunnsryu
diff --git a/src/models.rs b/src/models.rs
index 56b23be..3cef932 100644
--- a/src/models.rs
+++ b/src/models.rs
@@ -55,8 +55,7 @@ impl sqlx::Type<sqlx::Sqlite> for State {
 impl<'r> sqlx::Decode<'r, sqlx::Sqlite> for State {
     fn decode(value: sqlx::sqlite::SqliteValueRef<'r>) -> Result<Self, sqlx::error::BoxDynError> {
         let s = <&str as sqlx::Decode<sqlx::Sqlite>>::decode(value)?;
-        s.parse::<State>()
-            .map_err(|e| Box::new(std::io::Error::new(std::io::ErrorKind::InvalidData, e)).into())
+        Ok(s.parse::<State>()?)
     }
 }