Tergent/Rust compiling error type mismatch u64 u32

356 views Asked by At

I am attempting to compile a program for the Android application called Termux. It is essentially a sandboxed Linux-OS-like environment in a terminal application, for those unfamiliar with it. It has its own repos of .deb packages built in Android's various architectures and I am attempting to build the ARMv7 variant of the program called Tergent for an older phone I have still. I followed the README's instructions on setting up an environment and verified the Rust/NDK setup was correct before trying to compile the latest release. I am getting these errors and am not experienced enough with Rust to try and resolve them myself. I have posted an issue in the programs GitHub repo 3 days ago and have not recieved a response so I am now trying to resolve it myself, with help. Any help is appreciated

[19:05]/tmp/tergent->master $ cargo build --target=armv7-linux-androideabi --verbose
     Fresh autocfg v1.0.0
     Fresh cfg-if v0.1.10
     Fresh unicode-xid v0.2.1
     Fresh ppv-lite86 v0.2.8
     Fresh itoa v0.4.6
     Fresh base64 v0.12.3
     Fresh once_cell v1.4.0
     Fresh hex v0.4.2
     Fresh libc v0.2.74
     Fresh proc-macro2 v1.0.19
     Fresh serde v1.0.114
     Fresh ryu v1.0.5
     Fresh bitflags v1.2.1
     Fresh num-traits v0.2.12
     Fresh getrandom v0.1.14
     Fresh time v0.1.43
     Fresh quote v1.0.7
     Fresh num-integer v0.1.43
     Fresh rand_core v0.5.1
     Fresh nix v0.18.0
     Fresh serde_json v1.0.57
     Fresh rand_chacha v0.2.2
     Fresh syn v1.0.38
     Fresh num-bigint v0.2.6
     Fresh chrono v0.4.13
     Fresh rand v0.7.3
     Fresh num-derive v0.3.1
     Fresh simple_asn1 v0.4.1
     Fresh uuid v0.8.1
 Compiling tergent v1.0.0 (/tmp/tergent)
   Running `rustc --crate-name tergent --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type cdylib --emit=dep-info,link -Cembed-bitcode=no -C debuginfo=2 -C metadata=b6a2965ef93bb5e8 --out-dir /tmp/tergent/target/armv7-linux-androideabi/debug/deps --target armv7-linux-androideabi -C 'linker=/home/rebel/$HOME/Android/NDK/arm/bin/arm-linux-androideabi-clang' -C incremental=/tmp/tergent/target/armv7-linux-androideabi/debug/incremental -L dependency=/tmp/tergent/target/armv7-linux-androideabi/debug/deps -L dependency=/tmp/tergent/target/debug/deps --extern base64=/tmp/tergent/target/armv7-linux-androideabi/debug/deps/libbase64-04c3ff0d903d612e.rlib --extern bitflags=/tmp/tergent/target/armv7-linux-androideabi/debug/deps/libbitflags-0839c713eceb861a.rlib --extern hex=/tmp/tergent/target/armv7-linux-androideabi/debug/deps/libhex-d4ae58abeaa8109d.rlib --extern nix=/tmp/tergent/target/armv7-linux-androideabi/debug/deps/libnix-a9ab1027aef873d6.rlib --extern num_derive=/tmp/tergent/target/debug/deps/libnum_derive-29bdb6f1125bd4f2.so --extern num_traits=/tmp/tergent/target/armv7-linux-androideabi/debug/deps/libnum_traits-84af4dabd83ecda9.rlib --extern once_cell=/tmp/tergent/target/armv7-linux-androideabi/debug/deps/libonce_cell-93c75b6cffc1ed95.rlib --extern serde_json=/tmp/tergent/target/armv7-linux-androideabi/debug/deps/libserde_json-33982e169e2395ce.rlib --extern simple_asn1=/tmp/tergent/target/armv7-linux-androideabi/debug/deps/libsimple_asn1-9807816f7d31f61c.rlib --extern uuid=/tmp/tergent/target/armv7-linux-androideabi/debug/deps/libuuid-c723d9c5bf67b153.rlib`
error[E0308]: mismatched types
 --> src/lib.rs:114:38
  |
114 |     token_info.total_public_memory = unavailable_information;
  |                                      ^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
  |
help: you can convert `token_info.total_public_memory` from `u32` to `u64`, matching the type of `unavailable_information`
  |
114 |     u64::from(token_info.total_public_memory) = unavailable_information;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
 --> src/lib.rs:115:37
  |
115 |     token_info.free_public_memory = unavailable_information;
  |                                     ^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
  |
help: you can convert `token_info.free_public_memory` from `u32` to `u64`, matching the type of `unavailable_information`
  |
115 |     u64::from(token_info.free_public_memory) = unavailable_information;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
 --> src/lib.rs:116:39
  |
116 |     token_info.total_private_memory = unavailable_information;
  |                                       ^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
  |
help: you can convert `token_info.total_private_memory` from `u32` to `u64`, matching the type of `unavailable_information`
  |
116 |     u64::from(token_info.total_private_memory) = unavailable_information;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
 --> src/lib.rs:117:38
  |
117 |     token_info.free_private_memory = unavailable_information;
  |                                      ^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
  |
help: you can convert `token_info.free_private_memory` from `u32` to `u64`, matching the type of `unavailable_information`
  |
117 |     u64::from(token_info.free_private_memory) = unavailable_information;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
 --> src/lib.rs:196:33
  |
196 |             unsafe { *session = index }
  |                                 ^^^^^ expected `u32`, found `u64`
  |
help: you can convert `*session` from `u32` to `u64`, matching the type of `index`
  |
196 |             unsafe { u64::from(*session) = index }
  |                      ^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
 --> src/lib.rs:208:25
  |
208 |     match state::remove(session) {
  |                         ^^^^^^^
  |                         |
  |                         expected `u64`, found `u32`
  |                         help: you can convert an `u32` to `u64`: `session.into()`

error[E0308]: mismatched types
 --> src/lib.rs:304:28
  |
304 |     let state = state::get(session);
  |                            ^^^^^^^
  |                            |
  |                            expected `u64`, found `u32`
  |                            help: you can convert an `u32` to `u64`: `session.into()`

error[E0277]: the trait bound `u64: std::convert::From<pkcs11::key_type::KeyType>` is not satisfied
 --> src/lib.rs:342:18
  |
342 |                 .try_into()
  |                  ^^^^^^^^ the trait `std::convert::From<pkcs11::key_type::KeyType>` is not implemented for `u64`
  |
  = help: the following implementations were found:
            <u64 as std::convert::From<bool>>
            <u64 as std::convert::From<std::num::NonZeroU64>>
            <u64 as std::convert::From<u16>>
            <u64 as std::convert::From<u32>>
            <u64 as std::convert::From<u8>>
  = note: required because of the requirements on the impl of `std::convert::Into<u64>` for `pkcs11::key_type::KeyType`
  = note: required because of the requirements on the impl of `std::convert::TryFrom<pkcs11::key_type::KeyType>` for `u64`
  = note: required because of the requirements on the impl of `std::convert::TryInto<u64>` for `pkcs11::key_type::KeyType`

error[E0277]: the trait bound `pkcs11::object_class::ObjectClass: std::convert::From<u64>` is not satisfied
 --> src/lib.rs:439:89
  |
439 |                 if let Ok(ObjectClass::PublicKey) | Ok(ObjectClass::PrivateKey) = class.try_into() {
  |                                                                                         ^^^^^^^^ the trait `std::convert::From<u64>` is not implemented for `pkcs11::object_class::ObjectClass`
  |
  = note: required because of the requirements on the impl of `std::convert::Into<pkcs11::object_class::ObjectClass>` for `u64`
  = note: required because of the requirements on the impl of `std::convert::TryFrom<u64>` for `pkcs11::object_class::ObjectClass`
  = note: required because of the requirements on the impl of `std::convert::TryInto<pkcs11::object_class::ObjectClass>` for `u64`

error[E0308]: mismatched types
 --> src/lib.rs:463:28
  |
463 |     let state = state::get(session);
  |                            ^^^^^^^
  |                            |
  |                            expected `u64`, found `u32`
  |                            help: you can convert an `u32` to `u64`: `session.into()`

error[E0308]: mismatched types
 --> src/lib.rs:487:28
  |
487 |     let state = state::get(session);
  |                            ^^^^^^^
  |                            |
  |                            expected `u64`, found `u32`
  |                            help: you can convert an `u32` to `u64`: `session.into()`

error[E0308]: mismatched types
 --> src/lib.rs:643:28
  |
643 |     let state = state::get(session);
  |                            ^^^^^^^
  |                            |
  |                            expected `u64`, found `u32`
  |                            help: you can convert an `u32` to `u64`: `session.into()`

error[E0308]: mismatched types
 --> src/lib.rs:697:32
  |
697 |         let state = state::get(session);
  |                                ^^^^^^^
  |                                |
  |                                expected `u64`, found `u32`
  |                                help: you can convert an `u32` to `u64`: `session.into()`

error[E0308]: mismatched types
--> src/pkcs11/mod.rs:64:30
 |
64 |             self.value_len = len;
 |                              ^^^ expected `u32`, found `u64`
 |
help: you can convert `self.value_len` from `u32` to `u64`, matching the type of `len`
 |
64 |             u64::from(self.value_len) = len;
 |             ^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
--> src/pkcs11/mod.rs:68:29
 |
68 |         if self.value_len < len {
 |                             ^^^ expected `u32`, found `u64`
 |
help: you can convert `self.value_len` from `u32` to `u64`, matching the type of `len`
 |
68 |         if u64::from(self.value_len) < len {
 |            ^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
--> src/pkcs11/mod.rs:75:26
 |
75 |         self.value_len = len;
 |                          ^^^ expected `u32`, found `u64`
 |
help: you can convert `self.value_len` from `u32` to `u64`, matching the type of `len`
 |
75 |         u64::from(self.value_len) = len;
 |         ^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
--> src/pkcs11/notification.rs:16:32
 |
16 |         Notification::from_u64(value).ok_or(())
 |                                ^^^^^
 |                                |
 |                                expected `u64`, found `u32`
 |                                help: you can convert an `u32` to `u64`: `value.into()`

error[E0308]: mismatched types
--> src/pkcs11/notification.rs:23:9
 |
22 |     fn try_from(value: Notification) -> Result<Self, Self::Error> {
 |                                         ------------------------- expected `std::result::Result<u32, ()>` because of return type
23 |         Notification::to_u64(&value).ok_or(())
 |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
 |
 = note: expected enum `std::result::Result<u32, _>`
            found enum `std::result::Result<u64, _>`

error[E0308]: mismatched types
--> src/pkcs11/user_type.rs:17:28
 |
17 |         UserType::from_u64(value).ok_or(())
 |                            ^^^^^
 |                            |
 |                            expected `u64`, found `u32`
 |                            help: you can convert an `u32` to `u64`: `value.into()`

error[E0308]: mismatched types
--> src/pkcs11/user_type.rs:24:9
 |
23 |     fn try_from(value: UserType) -> Result<Self, Self::Error> {
 |                                     ------------------------- expected `std::result::Result<u32, ()>` because of return type
24 |         UserType::to_u64(&value).ok_or(())
 |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
 |
 = note: expected enum `std::result::Result<u32, _>`
            found enum `std::result::Result<u64, _>`

error[E0308]: mismatched types
--> src/pkcs11/session_state.rs:19:32
 |
19 |         SessionState::from_u64(value).ok_or(())
 |                                ^^^^^
 |                                |
 |                                expected `u64`, found `u32`
 |                                help: you can convert an `u32` to `u64`: `value.into()`

error[E0308]: mismatched types
--> src/pkcs11/session_state.rs:26:9
 |
25 |     fn try_from(value: SessionState) -> Result<Self, Self::Error> {
 |                                         ------------------------- expected `std::result::Result<u32, ()>` because of return type
26 |         SessionState::to_u64(&value).ok_or(())
 |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
 |
 = note: expected enum `std::result::Result<u32, _>`
            found enum `std::result::Result<u64, _>`

error[E0308]: mismatched types
--> src/pkcs11/object_class.rs:24:31
 |
24 |         ObjectClass::from_u64(value).ok_or(())
 |                               ^^^^^
 |                               |
 |                               expected `u64`, found `u32`
 |                               help: you can convert an `u32` to `u64`: `value.into()`

error[E0308]: mismatched types
--> src/pkcs11/object_class.rs:31:9
 |
30 |     fn try_from(value: ObjectClass) -> Result<Self, Self::Error> {
 |                                        ------------------------- expected `std::result::Result<u32, ()>` because of return type
31 |         ObjectClass::to_u64(&value).ok_or(())
 |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
 |
 = note: expected enum `std::result::Result<u32, _>`
            found enum `std::result::Result<u64, _>`

error[E0308]: mismatched types
--> src/pkcs11/hardware_feature_type.rs:18:39
 |
18 |         HardwareFeatureType::from_u64(value).ok_or(())
 |                                       ^^^^^
 |                                       |
 |                                       expected `u64`, found `u32`
 |                                       help: you can convert an `u32` to `u64`: `value.into()`

error[E0308]: mismatched types
--> src/pkcs11/hardware_feature_type.rs:25:9
 |
24 |     fn try_from(value: HardwareFeatureType) -> Result<Self, Self::Error> {
 |                                                ------------------------- expected `std::result::Result<u32, ()>` because of return type
25 |         HardwareFeatureType::to_u64(&value).ok_or(())
 |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
 |
 = note: expected enum `std::result::Result<u32, _>`
            found enum `std::result::Result<u64, _>`

error[E0308]: mismatched types
--> src/pkcs11/key_type.rs:56:27
 |
56 |         KeyType::from_u64(value).ok_or(())
 |                           ^^^^^
 |                           |
 |                           expected `u64`, found `u32`
 |                           help: you can convert an `u32` to `u64`: `value.into()`

error[E0308]: mismatched types
--> src/pkcs11/key_type.rs:63:9
 |
62 |     fn try_from(value: KeyType) -> Result<Self, Self::Error> {
 |                                    ------------------------- expected `std::result::Result<u32, ()>` because of return type
63 |         KeyType::to_u64(&value).ok_or(())
 |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
 |
 = note: expected enum `std::result::Result<u32, _>`
            found enum `std::result::Result<u64, _>`

error[E0308]: mismatched types
--> src/pkcs11/certificate_category.rs:18:39
 |
18 |         CertificateCategory::from_u64(value).ok_or(())
 |                                       ^^^^^
 |                                       |
 |                                       expected `u64`, found `u32`
 |                                       help: you can convert an `u32` to `u64`: `value.into()`

error[E0308]: mismatched types
--> src/pkcs11/certificate_category.rs:25:9
 |
24 |     fn try_from(value: CertificateCategory) -> Result<Self, Self::Error> {
 |                                                ------------------------- expected `std::result::Result<u32, ()>` because of return type
25 |         CertificateCategory::to_u64(&value).ok_or(())
 |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
 |
 = note: expected enum `std::result::Result<u32, _>`
            found enum `std::result::Result<u64, _>`

error[E0308]: mismatched types
--> src/pkcs11/security_domain.rs:18:34
 |
18 |         SecurityDomain::from_u64(value).ok_or(())
 |                                  ^^^^^
 |                                  |
 |                                  expected `u64`, found `u32`
 |                                  help: you can convert an `u32` to `u64`: `value.into()`

error[E0308]: mismatched types
--> src/pkcs11/security_domain.rs:25:9
 |
24 |     fn try_from(value: SecurityDomain) -> Result<Self, Self::Error> {
 |                                           ------------------------- expected `std::result::Result<u32, ()>` because of return type
25 |         SecurityDomain::to_u64(&value).ok_or(())
 |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
 |
 = note: expected enum `std::result::Result<u32, _>`
            found enum `std::result::Result<u64, _>`

error[E0308]: mismatched types
--> src/pkcs11/certificate_type.rs:18:35
 |
18 |         CertificateType::from_u64(value).ok_or(())
 |                                   ^^^^^
 |                                   |
 |                                   expected `u64`, found `u32`
 |                                   help: you can convert an `u32` to `u64`: `value.into()`

error[E0308]: mismatched types
--> src/pkcs11/certificate_type.rs:25:9
 |
24 |     fn try_from(value: CertificateType) -> Result<Self, Self::Error> {
 |                                            ------------------------- expected `std::result::Result<u32, ()>` because of return type
25 |         CertificateType::to_u64(&value).ok_or(())
 |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
 |
 = note: expected enum `std::result::Result<u32, _>`
            found enum `std::result::Result<u64, _>`

error[E0308]: mismatched types
 --> src/pkcs11/attribute_type.rs:120:33
  |
120 |         AttributeType::from_u64(value).ok_or(())
  |                                 ^^^^^
  |                                 |
  |                                 expected `u64`, found `u32`
  |                                 help: you can convert an `u32` to `u64`: `value.into()`

error[E0308]: mismatched types
 --> src/pkcs11/attribute_type.rs:127:9
  |
126 |     fn try_from(value: AttributeType) -> Result<Self, Self::Error> {
  |                                          ------------------------- expected `std::result::Result<u32, ()>` because of return type
127 |         AttributeType::to_u64(&value).ok_or(())
  |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
  |
  = note: expected enum `std::result::Result<u32, _>`
             found enum `std::result::Result<u64, _>`

error[E0308]: mismatched types
--> src/pkcs11/otp.rs:34:26
 |
34 |         Format::from_u64(value).ok_or(())
 |                          ^^^^^
 |                          |
 |                          expected `u64`, found `u32`
 |                          help: you can convert an `u32` to `u64`: `value.into()`

error[E0308]: mismatched types
--> src/pkcs11/otp.rs:41:9
 |
40 |     fn try_from(value: Format) -> Result<Self, Self::Error> {
 |                                   ------------------------- expected `std::result::Result<u32, ()>` because of return type
41 |         Format::to_u64(&value).ok_or(())
 |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
 |
 = note: expected enum `std::result::Result<u32, _>`
            found enum `std::result::Result<u64, _>`

error[E0308]: mismatched types
--> src/pkcs11/otp.rs:48:25
 |
48 |         Param::from_u64(value).ok_or(())
 |                         ^^^^^
 |                         |
 |                         expected `u64`, found `u32`
 |                         help: you can convert an `u32` to `u64`: `value.into()`

error[E0308]: mismatched types
--> src/pkcs11/otp.rs:55:9
 |
54 |     fn try_from(value: Param) -> Result<Self, Self::Error> {
 |                                  ------------------------- expected `std::result::Result<u32, ()>` because of return type
55 |         Param::to_u64(&value).ok_or(())
 |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
 |
 = note: expected enum `std::result::Result<u32, _>`
            found enum `std::result::Result<u64, _>`

error[E0308]: mismatched types
 --> src/pkcs11/mechanism_type.rs:338:33
  |
338 |         MechanismType::from_u64(value).ok_or(())
  |                                 ^^^^^
  |                                 |
  |                                 expected `u64`, found `u32`
  |                                 help: you can convert an `u32` to `u64`: `value.into()`

error[E0308]: mismatched types
 --> src/pkcs11/mechanism_type.rs:345:9
  |
344 |     fn try_from(value: MechanismType) -> Result<Self, Self::Error> {
  |                                          ------------------------- expected `std::result::Result<u32, ()>` because of return type
345 |         MechanismType::to_u64(&value).ok_or(())
  |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
  |
  = note: expected enum `std::result::Result<u32, _>`
             found enum `std::result::Result<u64, _>`

error[E0308]: mismatched types
 --> src/pkcs11/return_value.rs:109:31
  |
109 |         ReturnValue::from_u64(value).ok_or(())
  |                               ^^^^^
  |                               |
  |                               expected `u64`, found `u32`
  |                               help: you can convert an `u32` to `u64`: `value.into()`

error[E0308]: mismatched types
 --> src/pkcs11/return_value.rs:116:9
  |
115 |     fn try_from(value: ReturnValue) -> Result<Self, Self::Error> {
  |                                        ------------------------- expected `std::result::Result<u32, ()>` because of return type
116 |         ReturnValue::to_u64(&value).ok_or(())
  |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
  |
  = note: expected enum `std::result::Result<u32, _>`
             found enum `std::result::Result<u64, _>`

error[E0308]: mismatched types
--> src/pkcs11/mask_generation_function.rs:19:42
 |
19 |         MaskGenerationFunction::from_u64(value).ok_or(())
 |                                          ^^^^^
 |                                          |
 |                                          expected `u64`, found `u32`
 |                                          help: you can convert an `u32` to `u64`: `value.into()`

error[E0308]: mismatched types
--> src/pkcs11/mask_generation_function.rs:26:9
 |
25 |     fn try_from(value: MaskGenerationFunction) -> Result<Self, Self::Error> {
 |                                                   ------------------------- expected `std::result::Result<u32, ()>` because of return type
26 |         MaskGenerationFunction::to_u64(&value).ok_or(())
 |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
 |
 = note: expected enum `std::result::Result<u32, _>`
            found enum `std::result::Result<u64, _>`

error[E0308]: mismatched types
--> src/pkcs11/key_derivation_function.rs:23:41
 |
23 |         KeyDerivationFunction::from_u64(value).ok_or(())
 |                                         ^^^^^
 |                                         |
 |                                         expected `u64`, found `u32`
 |                                         help: you can convert an `u32` to `u64`: `value.into()`

error[E0308]: mismatched types
--> src/pkcs11/key_derivation_function.rs:30:9
 |
29 |     fn try_from(value: KeyDerivationFunction) -> Result<Self, Self::Error> {
 |                                                  ------------------------- expected `std::result::Result<u32, ()>` because of return type
30 |         KeyDerivationFunction::to_u64(&value).ok_or(())
 |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
 |
 = note: expected enum `std::result::Result<u32, _>`
            found enum `std::result::Result<u64, _>`

error[E0308]: mismatched types
--> src/pkcs11/pseudo_random_function.rs:22:40
 |
22 |         PseudoRandomFunction::from_u64(value).ok_or(())
 |                                        ^^^^^
 |                                        |
 |                                        expected `u64`, found `u32`
 |                                        help: you can convert an `u32` to `u64`: `value.into()`

error[E0308]: mismatched types
--> src/pkcs11/pseudo_random_function.rs:29:9
 |
28 |     fn try_from(value: PseudoRandomFunction) -> Result<Self, Self::Error> {
 |                                                 ------------------------- expected `std::result::Result<u32, ()>` because of return type
29 |         PseudoRandomFunction::to_u64(&value).ok_or(())
 |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `u64`
 |
 = note: expected enum `std::result::Result<u32, _>`
            found enum `std::result::Result<u64, _>`

error: aborting due to 50 previous errors

Some errors have detailed explanations: E0277, E0308.
For more information about an error, try `rustc --explain E0277`.
error: could not compile `tergent`.

Caused by:
process didn't exit successfully: `rustc --crate-name tergent --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type cdylib --emit=dep-info,link -Cembed-bitcode=no -C debuginfo=2 -C metadata=b6a2965ef93bb5e8 --out-dir /tmp/tergent/target/armv7-linux-androideabi/debug/deps --target armv7-linux-androideabi -C 'linker=/home/rebel/$HOME/Android/NDK/arm/bin/arm-linux-androideabi-clang' -C incremental=/tmp/tergent/target/armv7-linux-androideabi/debug/incremental -L dependency=/tmp/tergent/target/armv7-linux-androideabi/debug/deps -L dependency=/tmp/tergent/target/debug/deps --extern base64=/tmp/tergent/target/armv7-linux-androideabi/debug/deps/libbase64-04c3ff0d903d612e.rlib --extern bitflags=/tmp/tergent/target/armv7-linux-androideabi/debug/deps/libbitflags-0839c713eceb861a.rlib --extern hex=/tmp/tergent/target/armv7-linux-androideabi/debug/deps/libhex-d4ae58abeaa8109d.rlib --extern nix=/tmp/tergent/target/armv7-linux-androideabi/debug/deps/libnix-a9ab1027aef873d6.rlib --extern num_derive=/tmp/tergent/target/debug/deps/libnum_derive-29bdb6f1125bd4f2.so --extern num_traits=/tmp/tergent/target/armv7-linux-androideabi/debug/deps/libnum_traits-84af4dabd83ecda9.rlib --extern once_cell=/tmp/tergent/target/armv7-linux-androideabi/debug/deps/libonce_cell-93c75b6cffc1ed95.rlib --extern serde_json=/tmp/tergent/target/armv7-linux-androideabi/debug/deps/libserde_json-33982e169e2395ce.rlib --extern simple_asn1=/tmp/tergent/target/armv7-linux-androideabi/debug/deps/libsimple_asn1-9807816f7d31f61c.rlib --extern uuid=/tmp/tergent/target/armv7-linux-androideabi/debug/deps/libuuid-c723d9c5bf67b153.rlib` (exit code: 1)
0

There are 0 answers