#[non_exhaustive]pub struct S2Endpoints {
pub scheme: Scheme,
pub account_authority: Authority,
pub basin_authority: BasinAuthority,
}Expand description
Endpoints for the S2 environment.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.scheme: SchemeURI scheme.
Defaults to https.
Account authority.
Basin authority.
Implementations§
Source§impl S2Endpoints
impl S2Endpoints
Sourcepub fn new(
account_authority: Authority,
basin_authority: BasinAuthority,
) -> Self
pub fn new( account_authority: Authority, basin_authority: BasinAuthority, ) -> Self
Create a new S2Endpoints with the given account and basin authorities.
Examples found in repository?
examples/docs_configuration.rs (lines 18-21)
13fn main() -> Result<(), Box<dyn std::error::Error>> {
14 // Example: Custom endpoints (e.g., for s2-lite local dev)
15 {
16 let token = "local-token".to_string();
17 // ANCHOR: custom-endpoints
18 let endpoints = S2Endpoints::new(
19 "localhost:8080".parse()?,
20 BasinAuthority::Direct("localhost:8080".parse()?),
21 )
22 .with_scheme(Scheme::HTTP);
23
24 let client = S2::new(S2Config::new(token).with_endpoints(endpoints))?;
25 // ANCHOR_END: custom-endpoints
26 println!("Created client with custom endpoints: {:?}", client);
27 }
28
29 // Example: Custom retry configuration
30 {
31 let token = std::env::var("S2_ACCESS_TOKEN").unwrap_or_else(|_| "demo".into());
32 // ANCHOR: retry-config
33 let client = S2::new(
34 S2Config::new(token).with_retry(
35 RetryConfig::new()
36 .with_max_attempts(NonZeroU32::new(5).unwrap())
37 .with_min_base_delay(Duration::from_millis(100))
38 .with_max_base_delay(Duration::from_secs(2)),
39 ),
40 )?;
41 // ANCHOR_END: retry-config
42 println!("Created client with retry config: {:?}", client);
43 }
44
45 // Example: Custom timeout configuration
46 {
47 let token = std::env::var("S2_ACCESS_TOKEN").unwrap_or_else(|_| "demo".into());
48 // ANCHOR: timeout-config
49 let client = S2::new(
50 S2Config::new(token)
51 .with_connection_timeout(Duration::from_secs(5))
52 .with_request_timeout(Duration::from_secs(10)),
53 )?;
54 // ANCHOR_END: timeout-config
55 println!("Created client with timeout config: {:?}", client);
56 }
57
58 Ok(())
59}Sourcepub fn from_env() -> Result<Self, ValidationError>
pub fn from_env() -> Result<Self, ValidationError>
Create a new S2Endpoints from environment variables.
The following environment variables are expected to be set:
S2_ACCOUNT_ENDPOINT- Account-level endpoint.S2_BASIN_ENDPOINT- Basin-level endpoint.
Sourcepub fn with_scheme(self, scheme: Scheme) -> Self
pub fn with_scheme(self, scheme: Scheme) -> Self
Set the URI scheme.
Examples found in repository?
examples/docs_configuration.rs (line 22)
13fn main() -> Result<(), Box<dyn std::error::Error>> {
14 // Example: Custom endpoints (e.g., for s2-lite local dev)
15 {
16 let token = "local-token".to_string();
17 // ANCHOR: custom-endpoints
18 let endpoints = S2Endpoints::new(
19 "localhost:8080".parse()?,
20 BasinAuthority::Direct("localhost:8080".parse()?),
21 )
22 .with_scheme(Scheme::HTTP);
23
24 let client = S2::new(S2Config::new(token).with_endpoints(endpoints))?;
25 // ANCHOR_END: custom-endpoints
26 println!("Created client with custom endpoints: {:?}", client);
27 }
28
29 // Example: Custom retry configuration
30 {
31 let token = std::env::var("S2_ACCESS_TOKEN").unwrap_or_else(|_| "demo".into());
32 // ANCHOR: retry-config
33 let client = S2::new(
34 S2Config::new(token).with_retry(
35 RetryConfig::new()
36 .with_max_attempts(NonZeroU32::new(5).unwrap())
37 .with_min_base_delay(Duration::from_millis(100))
38 .with_max_base_delay(Duration::from_secs(2)),
39 ),
40 )?;
41 // ANCHOR_END: retry-config
42 println!("Created client with retry config: {:?}", client);
43 }
44
45 // Example: Custom timeout configuration
46 {
47 let token = std::env::var("S2_ACCESS_TOKEN").unwrap_or_else(|_| "demo".into());
48 // ANCHOR: timeout-config
49 let client = S2::new(
50 S2Config::new(token)
51 .with_connection_timeout(Duration::from_secs(5))
52 .with_request_timeout(Duration::from_secs(10)),
53 )?;
54 // ANCHOR_END: timeout-config
55 println!("Created client with timeout config: {:?}", client);
56 }
57
58 Ok(())
59}Trait Implementations§
Source§impl Clone for S2Endpoints
impl Clone for S2Endpoints
Source§fn clone(&self) -> S2Endpoints
fn clone(&self) -> S2Endpoints
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl !Freeze for S2Endpoints
impl RefUnwindSafe for S2Endpoints
impl Send for S2Endpoints
impl Sync for S2Endpoints
impl Unpin for S2Endpoints
impl UnwindSafe for S2Endpoints
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more