In some instances (ex Parameters.set_width(&mut self, value: u32)) we pass a value as u32 but the value is immediately cast into c_int. Passing u32 values bigger than 2^31 will probably create an unexpected behavior. These parameters should therefore be declared as i32 or the function should be changed to use try_into() and return a result if the former doesn't make sense.