Skip to content

Commit 26b9bdb

Browse files
authored
serde_userdata: Remove map_err to reduce compile time impact (#441)
1 parent c58f67b commit 26b9bdb

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
- `Lua::replace_registry_value` takes `&mut RegistryKey`
88
- `Lua::scope` temporary disabled (will be re-added in the next release)
99
- Reduced the compile time contribution of `next_key_seed` and `next_value_seed`.
10+
- Reduced the compile time contribution of `serde_userdata`.
1011

1112
## v0.9.9
1213

src/serde/de.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -719,6 +719,11 @@ fn serde_userdata<V>(
719719
ud: AnyUserData,
720720
f: impl FnOnce(serde_value::Value) -> std::result::Result<V, serde_value::DeserializerError>,
721721
) -> Result<V> {
722-
let value = serde_value::to_value(ud).map_err(|err| Error::SerializeError(err.to_string()))?;
723-
f(value).map_err(|err| Error::DeserializeError(err.to_string()))
722+
match serde_value::to_value(ud) {
723+
Ok(value) => match f(value) {
724+
Ok(r) => Ok(r),
725+
Err(error) => Err(Error::DeserializeError(error.to_string())),
726+
},
727+
Err(error) => Err(Error::SerializeError(error.to_string())),
728+
}
724729
}

0 commit comments

Comments
 (0)