impl sync and send for types (🥴) as well as "AsObject" for casting for objects
This commit is contained in:
parent
ed5c4a5702
commit
8c195f224b
|
@ -160,6 +160,9 @@ pub fn generate_class<W: Write>(class: &Class, _sdk: &Sdk, w: &mut W) -> anyhow:
|
||||||
if !is_class {
|
if !is_class {
|
||||||
writeln!(w, "pub struct {name}(UnsafeCell<[u8; {size}]>);")?;
|
writeln!(w, "pub struct {name}(UnsafeCell<[u8; {size}]>);")?;
|
||||||
|
|
||||||
|
writeln!(w, "unsafe impl Send for {name} {{}}")?;
|
||||||
|
writeln!(w, "unsafe impl Sync for {name} {{}}")?;
|
||||||
|
|
||||||
write!(
|
write!(
|
||||||
w,
|
w,
|
||||||
r#"
|
r#"
|
||||||
|
@ -187,6 +190,24 @@ impl {name} {{
|
||||||
} else {
|
} else {
|
||||||
writeln!(w, "pub struct {name}(NonNull<UnsafeCell<u8>>);")?;
|
writeln!(w, "pub struct {name}(NonNull<UnsafeCell<u8>>);")?;
|
||||||
|
|
||||||
|
writeln!(w, "unsafe impl Send for {name} {{}}")?;
|
||||||
|
writeln!(w, "unsafe impl Sync for {name} {{}}")?;
|
||||||
|
|
||||||
|
write!(
|
||||||
|
w,
|
||||||
|
r#"
|
||||||
|
impl AsUObject for {name} {{
|
||||||
|
fn as_uobject(&self) -> UObject {{
|
||||||
|
UObject(self.0)
|
||||||
|
}}
|
||||||
|
|
||||||
|
fn from_uobject(obj: UObject) -> Self {{
|
||||||
|
Self(obj.0)
|
||||||
|
}}
|
||||||
|
}}
|
||||||
|
"#
|
||||||
|
)?;
|
||||||
|
|
||||||
write!(
|
write!(
|
||||||
w,
|
w,
|
||||||
r#"
|
r#"
|
||||||
|
|
Loading…
Reference in a new issue