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
33
34
35
36
37
38
39
40
41
42
43
impl crate::places::place_details::Request<'_> {
/// Specifies the session token for the Places API _Place Details_ request.
///
/// ## Arguments
///
/// * `sessiontoken` ‧ A random string which identifies an autocomplete
/// [session](https://developers.google.com/maps/documentation/places/web-service/details#session_tokens)
/// for billing purposes.
///
/// The session begins when the user starts typing a query, and concludes
/// when they select a place and a call to Place Details is made. Each
/// session can have multiple queries, followed by one place selection. The
/// API key(s) used for each request within a session must belong to the
/// same Google Cloud Console project. Once a session has concluded, the
/// token is no longer valid; your app must generate a fresh token for each
/// session. If the `sessiontoken` parameter is omitted, or if you reuse a
/// session token, the session is charged as if no session token was
/// provided (each request is billed separately).
///
/// We recommend the following guidelines:
///
/// * Use session tokens for all autocomplete sessions.
///
/// * Generate a fresh token for each session. Using a version 4 UUID is
/// recommended.
///
/// * Ensure that the API key(s) used for all Place Autocomplete and Place
/// Details requests within a session belong to the same Cloud Console
/// project.
///
/// * Be sure to pass a unique session token for each new session. Using the
/// same token for more than one session will result in each request being
/// billed individually.
#[must_use] pub fn with_sessiontoken(
mut self,
sessiontoken: impl Into<String>
) -> Self {
// Set session token in Request struct.
self.sessiontoken = Some(sessiontoken.into());
// Return modified Request struct to caller.
self
} // fn
} // impl