haveibeensquatted/twistrs

Errors on build main branch

tompscanlan opened this issue · 5 comments

Wanted to import and run

    let domain = Domain::new("google.com").unwrap();
    let permutations = domain.all().unwrap();

Getting errors at bottom.

❯ cargo --version
cargo 1.72.0 (103a7ff2e 2023-08-15)

great-squat on  main [!] is 📦 v0.1.0 via 🦀 v1.72.0 on ☁️  (us-east-1) 
❯ rustc --version
rustc 1.72.0 (5680fa18f 2023-08-23)

errors:

❯ cargo build
   Compiling twistrs v0.5.2 (https://github.com/haveibeensquatted/twistrs.git?branch=main#5ebc1d17)
error[E0277]: the trait bound `String: Serialize` is not satisfied
    --> /home/tscanlan/.cargo/git/checkouts/twistrs-ab64395ec7e7a9bf/5ebc1d1/twistrs/src/enrich.rs:90:24
     |
90   | #[derive(Debug, Clone, Serialize, Default)]
     |                        ^^^^^^^^^ the trait `Serialize` is not implemented for `String`
91   | pub struct DomainMetadata {
92   |     /// The domain that is being enriched.
     |     -------------------------------------- required by a bound introduced by this call
     |
     = help: the trait `Serialize` is implemented for `str`
note: required by a bound in `enrich::_::_serde::ser::SerializeStruct::serialize_field`
    --> /home/tscanlan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.188/src/ser/mod.rs:1865:12
     |
1859 |     fn serialize_field<T: ?Sized>(
     |        --------------- required by a bound in this associated function
...
1865 |         T: Serialize;
     |            ^^^^^^^^^ required by this bound in `SerializeStruct::serialize_field`

error[E0277]: the trait bound `Vec<std::net::IpAddr>: Serialize` is not satisfied
    --> /home/tscanlan/.cargo/git/checkouts/twistrs-ab64395ec7e7a9bf/5ebc1d1/twistrs/src/enrich.rs:90:24
     |
90   | #[derive(Debug, Clone, Serialize, Default)]
     |                        ^^^^^^^^^ the trait `Serialize` is not implemented for `Vec<std::net::IpAddr>`
...
95   |     /// Any IPv4 and IPv6 ips that were discovered during
     |     ----------------------------------------------------- required by a bound introduced by this call
     |
     = help: the following other types implement trait `Serialize`:
               bool
               char
               isize
               i8
               i16
               i32
               i64
               i128
             and 93 others
     = note: required for `std::option::Option<Vec<std::net::IpAddr>>` to implement `Serialize`
note: required by a bound in `enrich::_::_serde::ser::SerializeStruct::serialize_field`
    --> /home/tscanlan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.188/src/ser/mod.rs:1865:12
     |
1859 |     fn serialize_field<T: ?Sized>(
     |        --------------- required by a bound in this associated function
...
1865 |         T: Serialize;
     |            ^^^^^^^^^ required by this bound in `SerializeStruct::serialize_field`

error[E0277]: the trait bound `Vec<(std::net::IpAddr, String)>: Serialize` is not satisfied
    --> /home/tscanlan/.cargo/git/checkouts/twistrs-ab64395ec7e7a9bf/5ebc1d1/twistrs/src/enrich.rs:90:24
     |
90   | #[derive(Debug, Clone, Serialize, Default)]
     |                        ^^^^^^^^^ the trait `Serialize` is not implemented for `Vec<(std::net::IpAddr, String)>`
...
106  |     /// IP addresses resolved through GeoIP lookup to City, Country, Continent.
     |     --------------------------------------------------------------------------- required by a bound introduced by this call
     |
     = help: the following other types implement trait `Serialize`:
               bool
               char
               isize
               i8
               i16
               i32
               i64
               i128
             and 93 others
     = note: required for `std::option::Option<Vec<(std::net::IpAddr, String)>>` to implement `Serialize`
note: required by a bound in `enrich::_::_serde::ser::SerializeStruct::serialize_field`
    --> /home/tscanlan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.188/src/ser/mod.rs:1865:12
     |
1859 |     fn serialize_field<T: ?Sized>(
     |        --------------- required by a bound in this associated function
...
1865 |         T: Serialize;
     |            ^^^^^^^^^ required by this bound in `SerializeStruct::serialize_field`

error[E0277]: the trait bound `String: Serialize` is not satisfied
    --> /home/tscanlan/.cargo/git/checkouts/twistrs-ab64395ec7e7a9bf/5ebc1d1/twistrs/src/enrich.rs:115:24
     |
115  | #[derive(Debug, Clone, Serialize)]
     |                        ^^^^^^^^^ the trait `Serialize` is not implemented for `String`
...
120  |     /// Message received back from the SMTP server
     |     ---------------------------------------------- required by a bound introduced by this call
     |
     = help: the trait `Serialize` is implemented for `str`
note: required by a bound in `enrich::_::_serde::ser::SerializeStruct::serialize_field`
    --> /home/tscanlan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.188/src/ser/mod.rs:1865:12
     |
1859 |     fn serialize_field<T: ?Sized>(
     |        --------------- required by a bound in this associated function
...
1865 |         T: Serialize;
     |            ^^^^^^^^^ required by this bound in `SerializeStruct::serialize_field`

error[E0277]: the trait bound `String: Serialize` is not satisfied
    --> /home/tscanlan/.cargo/git/checkouts/twistrs-ab64395ec7e7a9bf/5ebc1d1/twistrs/src/permutate.rs:36:26
     |
36   | #[derive(Default, Debug, Serialize)]
     |                          ^^^^^^^^^ the trait `Serialize` is not implemented for `String`
...
41   |     /// The top-level domain of the FQDN (e.g. `.com`).
     |     --------------------------------------------------- required by a bound introduced by this call
     |
     = help: the trait `Serialize` is implemented for `str`
note: required by a bound in `enrich::_::_serde::ser::SerializeStruct::serialize_field`
    --> /home/tscanlan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.188/src/ser/mod.rs:1865:12
     |
1859 |     fn serialize_field<T: ?Sized>(
     |        --------------- required by a bound in this associated function
...
1865 |         T: Serialize;
     |            ^^^^^^^^^ required by this bound in `SerializeStruct::serialize_field`

For more information about this error, try `rustc --explain E0277`.
error: could not compile `twistrs` (lib) due to 5 previous errors

@tompscanlan just ran this on main without issues on the same version. What environment are you running this on by any chance?

I'm also running this on WSL2/Windows 11. If you're using it as a dependency, I'd recommend pulling the latest version from crates.io.

@tompscanlan not sure if you got round to solving this. I'm going to close the issue -- feel free to re-open it should it issue persist.