Use usize instead of c_long in Rust code

Needed to upgrade bindgen from 0.59.0 to 0.63.0. Resolves the
following errors:

error[E0308]: mismatched types
  --> frameworks/native/libs/binder/rust/src/parcel/parcelable.rs:91:22
   |
91 |                 Some(serialize_element::<Self>),
   |                 ---- ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `usize`, found `u64
`
   |                 |
   |                 arguments to this enum variant are incorrect
   |
   = note: expected fn pointer `unsafe extern "C" fn(_, _, usize) -> _`
                 found fn item `unsafe extern "C" fn(_, _, u64) -> _ {parcel::pa
rcelable::serialize_element::<Self>}`
note: tuple variant defined here

error[E0308]: mismatched types
   --> frameworks/native/libs/binder/rust/src/parcel/parcelable.rs:136:22
    |
136 |                 Some(deserialize_element::<Self>),
    |                 ---- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `usize`, found `
u64`
    |                 |
    |                 arguments to this enum variant are incorrect
    |
    = note: expected fn pointer `unsafe extern "C" fn(_, _, usize) -> _`
                  found fn item `unsafe extern "C" fn(_, _, u64) -> _ {parcel::p
arcelable::deserialize_element::<Self>}`

Test: Treehugger
Change-Id: I019e17bd8770da0574b2397f72e717419aa537cd
diff --git a/libs/binder/rust/src/parcel/parcelable.rs b/libs/binder/rust/src/parcel/parcelable.rs
index c241e4d..6f4c375 100644
--- a/libs/binder/rust/src/parcel/parcelable.rs
+++ b/libs/binder/rust/src/parcel/parcelable.rs
@@ -23,7 +23,7 @@
 use std::convert::{TryFrom, TryInto};
 use std::ffi::c_void;
 use std::mem::{self, ManuallyDrop, MaybeUninit};
-use std::os::raw::{c_char, c_ulong};
+use std::os::raw::c_char;
 use std::ptr;
 use std::slice;
 
@@ -103,12 +103,8 @@
 unsafe extern "C" fn serialize_element<T: Serialize>(
     parcel: *mut sys::AParcel,
     array: *const c_void,
-    index: c_ulong,
+    index: usize,
 ) -> status_t {
-    // c_ulong and usize are the same, but we need the explicitly sized version
-    // so the function signature matches what bindgen generates.
-    let index = index as usize;
-
     let slice: &[T] = slice::from_raw_parts(array.cast(), index + 1);
 
     let mut parcel = match BorrowedParcel::from_raw(parcel) {
@@ -158,12 +154,8 @@
 unsafe extern "C" fn deserialize_element<T: Deserialize>(
     parcel: *const sys::AParcel,
     array: *mut c_void,
-    index: c_ulong,
+    index: usize,
 ) -> status_t {
-    // c_ulong and usize are the same, but we need the explicitly sized version
-    // so the function signature matches what bindgen generates.
-    let index = index as usize;
-
     let vec = &mut *(array as *mut Option<Vec<MaybeUninit<T>>>);
     let vec = match vec {
         Some(v) => v,