Skip to content

Commit ca3e6e6

Browse files
committed
Impl Reflect for PathBuf and OsString (#6193)
# Objective `Reflect` impl is missing for `PathBuf` and `OsString`. Closes #6166. ## Solution Add implementations. --- ## Changelog ### Added `Reflect` impls for `PathBuf` and `OsString`.
1 parent cf86f27 commit ca3e6e6

File tree

1 file changed

+9
-0
lines changed
  • crates/bevy_reflect/src/impls

1 file changed

+9
-0
lines changed

crates/bevy_reflect/src/impls/std.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ use crate::utility::{GenericTypeInfoCell, NonGenericTypeInfoCell};
1111
use bevy_reflect_derive::{impl_from_reflect_value, impl_reflect_value};
1212
use bevy_utils::{Duration, Instant};
1313
use bevy_utils::{HashMap, HashSet};
14+
#[cfg(any(unix, windows))]
15+
use std::ffi::OsString;
1416
use std::{
1517
any::Any,
1618
borrow::Cow,
@@ -20,6 +22,7 @@ use std::{
2022
NonZeroU16, NonZeroU32, NonZeroU64, NonZeroU8, NonZeroUsize,
2123
},
2224
ops::{Range, RangeFrom, RangeFull, RangeInclusive, RangeTo, RangeToInclusive},
25+
path::PathBuf,
2326
};
2427

2528
impl_reflect_value!(bool(Debug, Hash, PartialEq, Serialize, Deserialize));
@@ -39,6 +42,7 @@ impl_reflect_value!(isize(Debug, Hash, PartialEq, Serialize, Deserialize));
3942
impl_reflect_value!(f32(Debug, PartialEq, Serialize, Deserialize));
4043
impl_reflect_value!(f64(Debug, PartialEq, Serialize, Deserialize));
4144
impl_reflect_value!(String(Debug, Hash, PartialEq, Serialize, Deserialize));
45+
impl_reflect_value!(PathBuf(Debug, Hash, PartialEq, Serialize, Deserialize));
4246
impl_reflect_value!(Result<T: Clone + Reflect + 'static, E: Clone + Reflect + 'static>());
4347
impl_reflect_value!(HashSet<T: Hash + Eq + Clone + Send + Sync + 'static>());
4448
impl_reflect_value!(Range<T: Clone + Send + Sync + 'static>());
@@ -62,6 +66,11 @@ impl_reflect_value!(NonZeroU16(Debug, Hash, PartialEq, Serialize, Deserialize));
6266
impl_reflect_value!(NonZeroU8(Debug, Hash, PartialEq, Serialize, Deserialize));
6367
impl_reflect_value!(NonZeroI8(Debug, Hash, PartialEq, Serialize, Deserialize));
6468

69+
// Only for platforms that can serialize it as in serde:
70+
// https://github.com/serde-rs/serde/blob/3ffb86fc70efd3d329519e2dddfa306cc04f167c/serde/src/de/impls.rs#L1732
71+
#[cfg(any(unix, windows))]
72+
impl_reflect_value!(OsString(Debug, Hash, PartialEq, Serialize, Deserialize));
73+
6574
impl_from_reflect_value!(bool);
6675
impl_from_reflect_value!(char);
6776
impl_from_reflect_value!(u8);

0 commit comments

Comments
 (0)