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
/*!
This is a binary memcached protocol implemented only in rust with support of traits to send
and receive `T` and consistent hashing to select connections from a pool to distribute data.
# Example
```rust
extern crate bmemcached;
use std::sync::Arc;
use std::thread;
use bmemcached::MemcachedClient;
fn main() {
// Use arc for threading support
let client = Arc::new(MemcachedClient::new(vec!["127.0.0.1:11211"], 5).unwrap());
// Traits examples
let value = "value";
client.set("string", value, 1000);
let rv: String = client.get("string").unwrap();
assert_eq!(rv, "value");
client.set("integer", 10 as u8, 1000);
let rv: u8 = client.get("integer").unwrap();
assert_eq!(rv, 10 as u8);
// Threads example
let mut threads = vec![];
for i in 0..4 {
let client = client.clone();
threads.push(thread::spawn(move || {
let data = format!("data_n{}", i);
client.set(&data, &data, 100).unwrap();
let val: String = client.get(&data).unwrap();
client.delete(&data).unwrap();
val
}));
}
for (i, thread) in threads.into_iter().enumerate() {
let result = thread.join();
assert_eq!(result.unwrap(), format!("data_n{}", i));
}
}
```
*/
extern crate bitflags;
extern crate byteorder;
extern crate conhash;
extern crate enum_primitive;
extern crate log;
extern crate num;
pub use ;
extern crate error_chain;
pub use MemcachedClient;
pub use StoredType;