1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
use crate::roads::snap_to_roads::{request::Request, SERVICE_URL};
use std::borrow::Cow;

// =============================================================================

impl<'a> Request<'a> {
    // -------------------------------------------------------------------------
    //
    /// Returns the URL query string that represents the query you've built.
    ///
    /// ## Description
    ///
    /// Returns the query string that will be sent to the Google Maps API. It
    /// is the result of the builder pattern. This method could be useful for
    /// records or logging. It could also be used for passing to your HTTP
    /// client of choice and executing the HTTP GET request yourself.
    ///
    /// ## Arguments
    ///
    /// This method accepts no arguments.

    pub fn query_url(&'a mut self) -> String {
        let query_string = match &self.query {
            // If query string has already been built, return it:
            Some(query_string) => Cow::from(query_string),
            // If it hasn't been built, build it:
            None => Cow::from(self.build().query.clone().unwrap_or_default()),
        }; // match

        format!("{SERVICE_URL}/?{query_string}")
    } // fn
} // impl