c2rust-refactor 0.15.0

C2Rust refactoring tool implementation
struct S {
    x: u32,
}

impl S {
    fn by_val(self) -> u32 {
        self.x
    }
    fn by_ref(&self) -> u32 {
        self.x
    }
    fn by_mut_ref(&mut self, new_x: u32) {
        self.x = new_x;
    }
    fn by_ref_with_lt<'a>(&'a self) -> &'a u32 {
        &self.x
    }
    fn static_method(x: i32, y: i32) -> i32 {
        x + y
    }
}

fn main() {
    let mut s = S { x: 0 };
    println!("by_ref: {}", (&s).by_ref());
    (&mut s).by_mut_ref(1);
    println!("by_ref_with_lt: {}", (&s).by_ref_with_lt());
    println!("by_val: {}", s.by_val());
    println!("static_method: {}", crate::S::static_method(100, -100));
}