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 {
 | 
			
		||||
        writeln!(w, "pub struct {name}(UnsafeCell<[u8; {size}]>);")?;
 | 
			
		||||
 | 
			
		||||
        writeln!(w, "unsafe impl Send for {name} {{}}")?;
 | 
			
		||||
        writeln!(w, "unsafe impl Sync for {name} {{}}")?;
 | 
			
		||||
 | 
			
		||||
        write!(
 | 
			
		||||
            w,
 | 
			
		||||
            r#"
 | 
			
		||||
| 
						 | 
				
			
			@ -187,6 +190,24 @@ impl {name} {{
 | 
			
		|||
    } else {
 | 
			
		||||
        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!(
 | 
			
		||||
            w,
 | 
			
		||||
            r#"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue