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
#![cfg_attr(docsrs, deny(rustdoc::broken_intra_doc_links))]
#![cfg_attr(docsrs, feature(doc_cfg))]
#![cfg_attr(docsrs, allow(unused_attributes))]
#![doc = include_str!("../README.md")]
#[macro_use]
extern crate async_trait;
#[macro_use]
extern crate log;
pub extern crate bytes;
pub extern crate bytes_utils;
#[cfg(feature = "enable-native-tls")]
#[cfg_attr(docsrs, doc(cfg(feature = "enable-native-tls")))]
pub extern crate native_tls;
#[cfg(feature = "enable-rustls")]
#[cfg_attr(docsrs, doc(cfg(feature = "enable-rustls")))]
pub extern crate rustls;
#[cfg(feature = "enable-rustls")]
#[cfg_attr(docsrs, doc(cfg(feature = "enable-rustls")))]
pub extern crate rustls_native_certs;
#[cfg(feature = "serde-json")]
pub extern crate serde_json;
#[cfg(feature = "partial-tracing")]
#[cfg_attr(docsrs, doc(cfg(feature = "partial-tracing")))]
pub extern crate tracing;
#[cfg(any(feature = "full-tracing", feature = "partial-tracing"))]
extern crate tracing_futures;
#[macro_use]
mod macros;
mod commands;
mod modules;
mod protocol;
mod router;
mod trace;
mod utils;
pub mod clients;
pub mod error;
pub mod interfaces;
#[cfg(feature = "mocks")]
#[cfg_attr(docsrs, doc(cfg(feature = "mocks")))]
pub use modules::mocks;
#[cfg(feature = "monitor")]
#[cfg_attr(docsrs, doc(cfg(feature = "monitor")))]
pub mod monitor;
pub mod types;
pub mod util {
pub use crate::{
s,
utils::{f64_to_redis_string, redis_string_to_f64, static_bytes, static_str},
};
pub use redis_protocol::redis_keyslot;
pub fn sha1_hash(input: &str) -> String {
use sha1::Digest;
let mut hasher = sha1::Sha1::new();
hasher.update(input.as_bytes());
format!("{:x}", hasher.finalize())
}
}
pub use crate::modules::{globals, pool};
pub mod prelude {
#[cfg(feature = "partial-tracing")]
pub use crate::types::TracingConfig;
pub use crate::{
clients::RedisClient,
error::{RedisError, RedisErrorKind},
interfaces::*,
types::{
Blocking,
Expiration,
FromRedis,
PerformanceConfig,
ReconnectPolicy,
RedisConfig,
RedisValue,
RedisValueKind,
ServerConfig,
SetOptions,
},
};
}