Add Serialize/Deserialize for std::os::mikros::Errno
Some checks are pending
CI / Test suite (push) Waiting to run
CI / Test suite (windows) (push) Waiting to run
CI / Rust ${{matrix.rust}} (beta) (push) Waiting to run
CI / Rust ${{matrix.rust}} (stable) (push) Waiting to run
CI / Rust nightly ${{matrix.os == 'windows' && '(windows)' || ''}} (ubuntu) (push) Waiting to run
CI / Rust nightly ${{matrix.os == 'windows' && '(windows)' || ''}} (windows) (push) Waiting to run
CI / Rust ${{matrix.rust}} (1.31.0) (push) Waiting to run
CI / Rust ${{matrix.rust}} (1.34.0) (push) Waiting to run
CI / Rust 1.56.0 (push) Waiting to run
CI / Rust 1.36.0 (push) Waiting to run
CI / Minimal versions (push) Waiting to run
CI / Documentation (push) Waiting to run
CI / Clippy (push) Waiting to run
CI / Miri (push) Waiting to run
CI / Outdated (push) Waiting to run
Some checks are pending
CI / Test suite (push) Waiting to run
CI / Test suite (windows) (push) Waiting to run
CI / Rust ${{matrix.rust}} (beta) (push) Waiting to run
CI / Rust ${{matrix.rust}} (stable) (push) Waiting to run
CI / Rust nightly ${{matrix.os == 'windows' && '(windows)' || ''}} (ubuntu) (push) Waiting to run
CI / Rust nightly ${{matrix.os == 'windows' && '(windows)' || ''}} (windows) (push) Waiting to run
CI / Rust ${{matrix.rust}} (1.31.0) (push) Waiting to run
CI / Rust ${{matrix.rust}} (1.34.0) (push) Waiting to run
CI / Rust 1.56.0 (push) Waiting to run
CI / Rust 1.36.0 (push) Waiting to run
CI / Minimal versions (push) Waiting to run
CI / Documentation (push) Waiting to run
CI / Clippy (push) Waiting to run
CI / Miri (push) Waiting to run
CI / Outdated (push) Waiting to run
This commit is contained in:
parent
31000e1874
commit
7b4c40c037
@ -3181,3 +3181,39 @@ where
|
|||||||
s.parse().map_err(Error::custom)
|
s.parse().map_err(Error::custom)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#[cfg(target_os = "mikros")]
|
||||||
|
impl<'de> Deserialize<'de> for std::os::mikros::Errno {
|
||||||
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
||||||
|
where
|
||||||
|
D: Deserializer<'de>,
|
||||||
|
{
|
||||||
|
deserializer.deserialize_i32(ErrnoVisitor)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(target_os = "mikros")]
|
||||||
|
struct ErrnoVisitor;
|
||||||
|
|
||||||
|
#[cfg(target_os = "mikros")]
|
||||||
|
impl<'de> Visitor<'de> for ErrnoVisitor {
|
||||||
|
type Value = std::os::mikros::Errno;
|
||||||
|
|
||||||
|
fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
||||||
|
formatter.write_str("errno")
|
||||||
|
}
|
||||||
|
|
||||||
|
fn visit_i32<E>(self, v: i32) -> Result<Self::Value, E>
|
||||||
|
where
|
||||||
|
E: Error,
|
||||||
|
{
|
||||||
|
if let Ok(errno) = Errno::try_from(v) {
|
||||||
|
Ok(errno)
|
||||||
|
} else {
|
||||||
|
Err(E::invalid_value(Unexpected::Signed(v as i32), "errno"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -1094,3 +1094,16 @@ atomic_impl! {
|
|||||||
AtomicI64 "64"
|
AtomicI64 "64"
|
||||||
AtomicU64 "64"
|
AtomicU64 "64"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#[cfg(target_os = "mikros")]
|
||||||
|
impl Serialize for std::os::mikros::Errno {
|
||||||
|
#[inline]
|
||||||
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
||||||
|
where
|
||||||
|
S: Serializer,
|
||||||
|
{
|
||||||
|
(self as i32).serialize(serializer)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user