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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
//! # Transport module
//!
//! This module contains the [`Transport`] trait and the [`TransportRequest`]
//! and [`TransportResponse`] types.
//!
//! You can implement this trait for your own types, or use one of the provided
//! features to use a transport library.
//!
//! [`PubNub API`]: https://www.pubnub.com/docs
use ;
use crateBox;
/// The default base URL for the [`PubNub API`].
/// This is used for the transport layer.
///
/// Use it when you implement the [`Transport`] trait without any proxy.
///
/// [`PubNub API`]: https://www.pubnub.com/docs
pub const PUBNUB_DEFAULT_BASE_URL: &str = "https://ps.pndsn.com";
/// This trait is used to send requests to the [`PubNub API`].
///
/// You can implement this trait for your own types, or use one of the provided
/// features to use a transport library.
///
/// # Examples
/// ```
/// use pubnub::core::{Transport, TransportRequest, TransportResponse, PubNubError};
///
/// struct MyTransport;
///
/// #[async_trait::async_trait]
/// impl Transport for MyTransport {
/// async fn send(&self, req: TransportRequest) -> Result<TransportResponse, PubNubError> {
/// // Send your request here
///
/// Ok(TransportResponse::default())
/// }
/// }
/// ```
///
/// [`PubNub API`]: https://www.pubnub.com/docs