I would like to pass variable by reference to Rust, so it is not going to be copied every time I call the function. My code so far:
#[no_mangle]
pub extern fn random_number(mut _number: &i32){
println!("Hello world from rust - random_number");
_number = &50;
}
[DllImport("rust_to_cs.dll")]
static extern void random_number(ref int number);
var result = 36;
random_number(ref result);
Console.WriteLine(result);
The result I am getting
Hello world from rust - random_number
36
Calling the function is working but the variable is copied not passed by reference.
I need to change rust function to something like this
#[no_mangle]
pub extern fn random_number(number: &mut i32){
println!("Hello world from rust - random_number");
*number = 50;
}
Instead of random_number(mut _number: &i32)
I have random_number(number: &mut i32)
Assigning new value has been also changed from _number = &50;
to *number = 50;
Now I got following result
Hello world from rust - random_number
50