Skip to content

v3.8.0

Compare
Choose a tag to compare
@leontoeides leontoeides released this 10 Jan 23:01
· 4 commits to master since this release
  • Important note: This release some changes that are theoretically breaking changes. This would apply to users who are tapping into the more internal functions and destructuring structs. However, I don't believe most crate end-users will notice a difference.

  • 2024-01-10: Implemented Google Maps Address Validation API.

Basic example:

use google_maps::prelude::*;

let google_maps_client = google_maps::Client::try_new("YOUR_API_KEY_HERE")?;

let postal_address = PostalAddress::builder()
    .region_code(&Country::UnitedStates)
    .address_lines(vec![
        "1600 Amphitheatre Pkwy",
        "Mountain View, CA, 94043"
    ])
    .build();

let response = google_maps_client
    .validate_address()
    .address(postal_address)
    .build()
    .execute()
    .await?;

google_maps_client
    .provide_validation_feedback()
    .conclusion(ValidationConclusion::Unused)
    .response_id(response.response_id())
    .build()
    .execute()
    .await?;

// Dump entire response:
println!("{response:#?}");
  • 2025-01-04: Implemented a generic get method that covers all of the Google Maps APIs and handles the requests, responses, and errors.

  • 2025-01-01: Updated several dependencies.

  • 2024-12-29: Switched from the currently unmaintained backoff crate to Xuanwo's backon crate for an exponential back-off retry implementation.

    Thank you to Dan Groshev for reporting this issue!

    backon is not a drop-in replacement for backoff. During the transition, some much needed internal clean-up was done.

Full Changelog: v3.7.4...v3.8.0