```rust
struct Square { side: i32, } ```
Will expand to
```rust mod item; mod area; mod perimeter; mod scale; mod _CGQAQSUPERTRAIT__ { use std::ops::{Add, Sub, Mul, Div};
pub trait Rect {
type Item: Add + Sub + Mul + Div;
fn area(&self) -> Self::Item;
fn perimeter(&self) -> Self::Item;
fn scale(&mut self, scale: Self::Item);
}
} use _CGQAQSUPERTRAIT__::Rect;
struct Square {
side: i32,
}
impl Rect for Square {
type Item = crate::item::Item;
fn area(&self) -> Self::Item {