Fix Serialize/Deserialize for std::os::mikros::Errno
Some checks failed
CI / Test suite (push) Has been cancelled
CI / Test suite (windows) (push) Has been cancelled
CI / Rust ${{matrix.rust}} (beta) (push) Has been cancelled
CI / Rust ${{matrix.rust}} (stable) (push) Has been cancelled
CI / Rust nightly ${{matrix.os == 'windows' && '(windows)' || ''}} (ubuntu) (push) Has been cancelled
CI / Rust nightly ${{matrix.os == 'windows' && '(windows)' || ''}} (windows) (push) Has been cancelled
CI / Rust ${{matrix.rust}} (1.31.0) (push) Has been cancelled
CI / Rust ${{matrix.rust}} (1.34.0) (push) Has been cancelled
CI / Rust 1.56.0 (push) Has been cancelled
CI / Rust 1.36.0 (push) Has been cancelled
CI / Minimal versions (push) Has been cancelled
CI / Documentation (push) Has been cancelled
CI / Clippy (push) Has been cancelled
CI / Miri (push) Has been cancelled
CI / Outdated (push) Has been cancelled
Some checks failed
CI / Test suite (push) Has been cancelled
CI / Test suite (windows) (push) Has been cancelled
CI / Rust ${{matrix.rust}} (beta) (push) Has been cancelled
CI / Rust ${{matrix.rust}} (stable) (push) Has been cancelled
CI / Rust nightly ${{matrix.os == 'windows' && '(windows)' || ''}} (ubuntu) (push) Has been cancelled
CI / Rust nightly ${{matrix.os == 'windows' && '(windows)' || ''}} (windows) (push) Has been cancelled
CI / Rust ${{matrix.rust}} (1.31.0) (push) Has been cancelled
CI / Rust ${{matrix.rust}} (1.34.0) (push) Has been cancelled
CI / Rust 1.56.0 (push) Has been cancelled
CI / Rust 1.36.0 (push) Has been cancelled
CI / Minimal versions (push) Has been cancelled
CI / Documentation (push) Has been cancelled
CI / Clippy (push) Has been cancelled
CI / Miri (push) Has been cancelled
CI / Outdated (push) Has been cancelled
This commit is contained in:
parent
7b4c40c037
commit
1b40077a58
2
rust-toolchain.toml
Normal file
2
rust-toolchain.toml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
[toolchain]
|
||||||
|
channel = "dev-x86_64-unknown-mikros"
|
@ -1898,17 +1898,17 @@ forwarded_impl! {
|
|||||||
//
|
//
|
||||||
// #[derive(Deserialize)]
|
// #[derive(Deserialize)]
|
||||||
// #[serde(variant_identifier)]
|
// #[serde(variant_identifier)]
|
||||||
#[cfg(all(feature = "std", any(unix, windows)))]
|
#[cfg(all(feature = "std", any(unix, windows, target_os = "mikros")))]
|
||||||
variant_identifier! {
|
variant_identifier! {
|
||||||
OsStringKind (Unix; b"Unix"; 0, Windows; b"Windows"; 1)
|
OsStringKind (Unix; b"Unix"; 0, Windows; b"Windows"; 1)
|
||||||
"`Unix` or `Windows`",
|
"`Unix` or `Windows`",
|
||||||
OSSTR_VARIANTS
|
OSSTR_VARIANTS
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(all(feature = "std", any(unix, windows)))]
|
#[cfg(all(feature = "std", any(unix, windows, target_os = "mikros")))]
|
||||||
struct OsStringVisitor;
|
struct OsStringVisitor;
|
||||||
|
|
||||||
#[cfg(all(feature = "std", any(unix, windows)))]
|
#[cfg(all(feature = "std", any(unix, windows, target_os = "mikros")))]
|
||||||
impl<'de> Visitor<'de> for OsStringVisitor {
|
impl<'de> Visitor<'de> for OsStringVisitor {
|
||||||
type Value = OsString;
|
type Value = OsString;
|
||||||
|
|
||||||
@ -1916,12 +1916,15 @@ impl<'de> Visitor<'de> for OsStringVisitor {
|
|||||||
formatter.write_str("os string")
|
formatter.write_str("os string")
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(unix)]
|
#[cfg(any(unix, target_os = "mikros"))]
|
||||||
fn visit_enum<A>(self, data: A) -> Result<Self::Value, A::Error>
|
fn visit_enum<A>(self, data: A) -> Result<Self::Value, A::Error>
|
||||||
where
|
where
|
||||||
A: EnumAccess<'de>,
|
A: EnumAccess<'de>,
|
||||||
{
|
{
|
||||||
|
#[cfg(unix)]
|
||||||
use std::os::unix::ffi::OsStringExt;
|
use std::os::unix::ffi::OsStringExt;
|
||||||
|
#[cfg(target_os = "mikros")]
|
||||||
|
use std::os::mikros::ffi::OsStringExt;
|
||||||
|
|
||||||
match tri!(data.variant()) {
|
match tri!(data.variant()) {
|
||||||
(OsStringKind::Unix, v) => v.newtype_variant().map(OsString::from_vec),
|
(OsStringKind::Unix, v) => v.newtype_variant().map(OsString::from_vec),
|
||||||
@ -1949,8 +1952,8 @@ impl<'de> Visitor<'de> for OsStringVisitor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(all(feature = "std", any(unix, windows)))]
|
#[cfg(all(feature = "std", any(unix, windows, target_os = "mikros")))]
|
||||||
#[cfg_attr(docsrs, doc(cfg(all(feature = "std", any(unix, windows)))))]
|
#[cfg_attr(docsrs, doc(cfg(all(feature = "std", any(unix, windows, target_os = "mikros")))))]
|
||||||
impl<'de> Deserialize<'de> for OsString {
|
impl<'de> Deserialize<'de> for OsString {
|
||||||
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
||||||
where
|
where
|
||||||
@ -1981,8 +1984,8 @@ forwarded_impl! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
forwarded_impl! {
|
forwarded_impl! {
|
||||||
#[cfg(all(feature = "std", any(unix, windows)))]
|
#[cfg(all(feature = "std", any(unix, windows, target_os = "mikros")))]
|
||||||
#[cfg_attr(docsrs, doc(cfg(all(feature = "std", any(unix, windows)))))]
|
#[cfg_attr(docsrs, doc(cfg(all(feature = "std", any(unix, windows, target_os = "mikros")))))]
|
||||||
(), Box<OsStr>, OsString::into_boxed_os_str
|
(), Box<OsStr>, OsString::into_boxed_os_str
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3210,10 +3213,11 @@ impl<'de> Visitor<'de> for ErrnoVisitor {
|
|||||||
where
|
where
|
||||||
E: Error,
|
E: Error,
|
||||||
{
|
{
|
||||||
if let Ok(errno) = Errno::try_from(v) {
|
use std::convert::TryFrom;
|
||||||
|
if let Ok(errno) = std::os::mikros::Errno::try_from(v) {
|
||||||
Ok(errno)
|
Ok(errno)
|
||||||
} else {
|
} else {
|
||||||
Err(E::invalid_value(Unexpected::Signed(v as i32), "errno"))
|
Err(E::invalid_value(Unexpected::Signed(v as i64), &self))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -979,15 +979,19 @@ impl Serialize for PathBuf {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(all(feature = "std", any(unix, windows)))]
|
#[cfg(all(feature = "std", any(unix, windows, target_os = "mikros")))]
|
||||||
#[cfg_attr(docsrs, doc(cfg(all(feature = "std", any(unix, windows)))))]
|
#[cfg_attr(docsrs, doc(cfg(all(feature = "std", any(unix, windows, target_os = "mikros")))))]
|
||||||
impl Serialize for OsStr {
|
impl Serialize for OsStr {
|
||||||
#[cfg(unix)]
|
#[cfg(any(unix, target_os = "mikros"))]
|
||||||
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
||||||
where
|
where
|
||||||
S: Serializer,
|
S: Serializer,
|
||||||
{
|
{
|
||||||
|
|
||||||
|
#[cfg(unix)]
|
||||||
use std::os::unix::ffi::OsStrExt;
|
use std::os::unix::ffi::OsStrExt;
|
||||||
|
#[cfg(target_os = "mikros")]
|
||||||
|
use std::os::mikros::ffi::OsStrExt;
|
||||||
serializer.serialize_newtype_variant("OsString", 0, "Unix", self.as_bytes())
|
serializer.serialize_newtype_variant("OsString", 0, "Unix", self.as_bytes())
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1002,8 +1006,8 @@ impl Serialize for OsStr {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(all(feature = "std", any(unix, windows)))]
|
#[cfg(all(feature = "std", any(unix, windows, target_os = "mikros")))]
|
||||||
#[cfg_attr(docsrs, doc(cfg(all(feature = "std", any(unix, windows)))))]
|
#[cfg_attr(docsrs, doc(cfg(all(feature = "std", any(unix, windows, target_os = "mikros")))))]
|
||||||
impl Serialize for OsString {
|
impl Serialize for OsString {
|
||||||
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
||||||
where
|
where
|
||||||
@ -1104,6 +1108,6 @@ impl Serialize for std::os::mikros::Errno {
|
|||||||
where
|
where
|
||||||
S: Serializer,
|
S: Serializer,
|
||||||
{
|
{
|
||||||
(self as i32).serialize(serializer)
|
(*self as i32).serialize(serializer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user