pub struct Client { /* private fields */ }Expand description
A hyper Client wrapper that simplifies communication with the sled Tree server.
Implementations§
Source§impl Client
impl Client
Sourcepub fn new(uri: Uri) -> Self
pub fn new(uri: Uri) -> Self
Create a new Client pointing towards the given Uri.
The Uri should contain the Scheme and Authority parts of the URI but not the
following path. This following path will be created as necessary within each of the request
calls.
Examples found in repository?
7fn main() {
8 let client = sled_web::Client::new("http://localhost:3000".parse().unwrap());
9
10 let get_a = client
11 .get(vec![6])
12 .map(|v| {
13 println!("Entry `6` was `None`, as expected");
14 assert!(v.is_none())
15 })
16 .map_err(|e| eprintln!("{}", e));
17
18 let set = client
19 .set(vec![6], vec![1, 2, 3, 4, 5, 6, 7, 8, 9])
20 .map(|_| println!("Entry `6` successfully set"))
21 .map_err(|e| eprintln!("{}", e));
22
23 let get_b = client
24 .get(vec![6])
25 .map(|v| {
26 assert!(v.is_some());
27 println!("Successfully retrieved `6`: {:?}", v)
28 })
29 .map_err(|e| eprintln!("{}", e));
30
31 let iter = client
32 .iter()
33 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
34 .map_err(|e| eprintln!("Error: {}", e))
35 .collect()
36 .map(|_| ())
37 .map_err(|_| ());
38
39 let scan = client
40 .scan(vec![3])
41 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
42 .map_err(|e| eprintln!("Error: {}", e))
43 .collect()
44 .map(|_| ())
45 .map_err(|_| ());
46
47 let scan_range = client
48 .scan_range(vec![2], vec![5])
49 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
50 .map_err(|e| eprintln!("Error: {}", e))
51 .collect()
52 .map(|_| ())
53 .map_err(|_| ());
54
55 let max = client
56 .max()
57 .map(|entry| println!("Max: {:?}", entry))
58 .map_err(|e| eprintln!("Error: {}", e));
59
60 let pred = client
61 .pred(vec![4])
62 .map(|entry| println!("Pred to [4]: {:?}", entry))
63 .map_err(|e| eprintln!("Error: {}", e));
64
65 let pred_incl = client
66 .pred_incl(vec![4])
67 .map(|entry| println!("PredIncl to [4]: {:?}", entry))
68 .map_err(|e| eprintln!("Error: {}", e));
69
70 let succ = client
71 .succ(vec![2])
72 .map(|entry| println!("Succ to [2]: {:?}", entry))
73 .map_err(|e| eprintln!("Error: {}", e));
74
75 let succ_incl = client
76 .succ_incl(vec![2])
77 .map(|entry| println!("SuccIncl to [2]: {:?}", entry))
78 .map_err(|e| eprintln!("Error: {}", e));
79
80 hyper::rt::run({
81 get_a
82 .then(|_| set)
83 .then(|_| get_b)
84 .then(|_| {
85 println!("Iter all elements...");
86 iter
87 })
88 .then(|_| {
89 println!("Scan elements starting from `vec![3]`");
90 scan
91 })
92 .then(|_| {
93 println!("Scan range elements starting from `vec![2]` to `vec![5]`");
94 scan_range
95 })
96 .then(|_| max)
97 .then(|_| pred)
98 .then(|_| pred_incl)
99 .then(|_| succ)
100 .then(|_| succ_incl)
101 });
102}Sourcepub fn get(&self, key: Key) -> impl Future<Item = Option<Value>, Error = Error>
pub fn get(&self, key: Key) -> impl Future<Item = Option<Value>, Error = Error>
A method for performing the Get request.
Given the key for an entry in the sled::Tree, produce a Future with the value.
Examples found in repository?
7fn main() {
8 let client = sled_web::Client::new("http://localhost:3000".parse().unwrap());
9
10 let get_a = client
11 .get(vec![6])
12 .map(|v| {
13 println!("Entry `6` was `None`, as expected");
14 assert!(v.is_none())
15 })
16 .map_err(|e| eprintln!("{}", e));
17
18 let set = client
19 .set(vec![6], vec![1, 2, 3, 4, 5, 6, 7, 8, 9])
20 .map(|_| println!("Entry `6` successfully set"))
21 .map_err(|e| eprintln!("{}", e));
22
23 let get_b = client
24 .get(vec![6])
25 .map(|v| {
26 assert!(v.is_some());
27 println!("Successfully retrieved `6`: {:?}", v)
28 })
29 .map_err(|e| eprintln!("{}", e));
30
31 let iter = client
32 .iter()
33 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
34 .map_err(|e| eprintln!("Error: {}", e))
35 .collect()
36 .map(|_| ())
37 .map_err(|_| ());
38
39 let scan = client
40 .scan(vec![3])
41 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
42 .map_err(|e| eprintln!("Error: {}", e))
43 .collect()
44 .map(|_| ())
45 .map_err(|_| ());
46
47 let scan_range = client
48 .scan_range(vec![2], vec![5])
49 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
50 .map_err(|e| eprintln!("Error: {}", e))
51 .collect()
52 .map(|_| ())
53 .map_err(|_| ());
54
55 let max = client
56 .max()
57 .map(|entry| println!("Max: {:?}", entry))
58 .map_err(|e| eprintln!("Error: {}", e));
59
60 let pred = client
61 .pred(vec![4])
62 .map(|entry| println!("Pred to [4]: {:?}", entry))
63 .map_err(|e| eprintln!("Error: {}", e));
64
65 let pred_incl = client
66 .pred_incl(vec![4])
67 .map(|entry| println!("PredIncl to [4]: {:?}", entry))
68 .map_err(|e| eprintln!("Error: {}", e));
69
70 let succ = client
71 .succ(vec![2])
72 .map(|entry| println!("Succ to [2]: {:?}", entry))
73 .map_err(|e| eprintln!("Error: {}", e));
74
75 let succ_incl = client
76 .succ_incl(vec![2])
77 .map(|entry| println!("SuccIncl to [2]: {:?}", entry))
78 .map_err(|e| eprintln!("Error: {}", e));
79
80 hyper::rt::run({
81 get_a
82 .then(|_| set)
83 .then(|_| get_b)
84 .then(|_| {
85 println!("Iter all elements...");
86 iter
87 })
88 .then(|_| {
89 println!("Scan elements starting from `vec![3]`");
90 scan
91 })
92 .then(|_| {
93 println!("Scan range elements starting from `vec![2]` to `vec![5]`");
94 scan_range
95 })
96 .then(|_| max)
97 .then(|_| pred)
98 .then(|_| pred_incl)
99 .then(|_| succ)
100 .then(|_| succ_incl)
101 });
102}Sourcepub fn del(&self, key: Key) -> impl Future<Item = Option<Value>, Error = Error>
pub fn del(&self, key: Key) -> impl Future<Item = Option<Value>, Error = Error>
A method for performing the Del request.
Given the key for an entry in the sled::Tree, delete the entry and return a Future with
the removed value.
Sourcepub fn set(
&self,
key: Key,
value: Value,
) -> impl Future<Item = (), Error = Error>
pub fn set( &self, key: Key, value: Value, ) -> impl Future<Item = (), Error = Error>
A method for performing the Set request.
Send the given key and value to the database for insertion into the sled::Tree.
Examples found in repository?
7fn main() {
8 let client = sled_web::Client::new("http://localhost:3000".parse().unwrap());
9
10 let get_a = client
11 .get(vec![6])
12 .map(|v| {
13 println!("Entry `6` was `None`, as expected");
14 assert!(v.is_none())
15 })
16 .map_err(|e| eprintln!("{}", e));
17
18 let set = client
19 .set(vec![6], vec![1, 2, 3, 4, 5, 6, 7, 8, 9])
20 .map(|_| println!("Entry `6` successfully set"))
21 .map_err(|e| eprintln!("{}", e));
22
23 let get_b = client
24 .get(vec![6])
25 .map(|v| {
26 assert!(v.is_some());
27 println!("Successfully retrieved `6`: {:?}", v)
28 })
29 .map_err(|e| eprintln!("{}", e));
30
31 let iter = client
32 .iter()
33 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
34 .map_err(|e| eprintln!("Error: {}", e))
35 .collect()
36 .map(|_| ())
37 .map_err(|_| ());
38
39 let scan = client
40 .scan(vec![3])
41 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
42 .map_err(|e| eprintln!("Error: {}", e))
43 .collect()
44 .map(|_| ())
45 .map_err(|_| ());
46
47 let scan_range = client
48 .scan_range(vec![2], vec![5])
49 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
50 .map_err(|e| eprintln!("Error: {}", e))
51 .collect()
52 .map(|_| ())
53 .map_err(|_| ());
54
55 let max = client
56 .max()
57 .map(|entry| println!("Max: {:?}", entry))
58 .map_err(|e| eprintln!("Error: {}", e));
59
60 let pred = client
61 .pred(vec![4])
62 .map(|entry| println!("Pred to [4]: {:?}", entry))
63 .map_err(|e| eprintln!("Error: {}", e));
64
65 let pred_incl = client
66 .pred_incl(vec![4])
67 .map(|entry| println!("PredIncl to [4]: {:?}", entry))
68 .map_err(|e| eprintln!("Error: {}", e));
69
70 let succ = client
71 .succ(vec![2])
72 .map(|entry| println!("Succ to [2]: {:?}", entry))
73 .map_err(|e| eprintln!("Error: {}", e));
74
75 let succ_incl = client
76 .succ_incl(vec![2])
77 .map(|entry| println!("SuccIncl to [2]: {:?}", entry))
78 .map_err(|e| eprintln!("Error: {}", e));
79
80 hyper::rt::run({
81 get_a
82 .then(|_| set)
83 .then(|_| get_b)
84 .then(|_| {
85 println!("Iter all elements...");
86 iter
87 })
88 .then(|_| {
89 println!("Scan elements starting from `vec![3]`");
90 scan
91 })
92 .then(|_| {
93 println!("Scan range elements starting from `vec![2]` to `vec![5]`");
94 scan_range
95 })
96 .then(|_| max)
97 .then(|_| pred)
98 .then(|_| pred_incl)
99 .then(|_| succ)
100 .then(|_| succ_incl)
101 });
102}Sourcepub fn cas(
&self,
key: Key,
old: Option<Value>,
new: Option<Value>,
) -> impl Future<Item = Result<(), Option<Value>>, Error = Error>
pub fn cas( &self, key: Key, old: Option<Value>, new: Option<Value>, ) -> impl Future<Item = Result<(), Option<Value>>, Error = Error>
A method for performing the Cas request.
Compare and swap. Capable of unique creation, conditional modification, or deletion.
If old is None, this will only set the value if it doesn’t exist yet. If new is None, will delete the value if old is correct. If both old and new are Some, will modify the value if old is correct.
If Tree is read-only, will do nothing.
Sourcepub fn merge(
&self,
key: Key,
value: Value,
) -> impl Future<Item = (), Error = Error>
pub fn merge( &self, key: Key, value: Value, ) -> impl Future<Item = (), Error = Error>
A method for performing the Merge request.
Merge a new value into the total state for a key.
Sourcepub fn flush(&self) -> impl Future<Item = (), Error = Error>
pub fn flush(&self) -> impl Future<Item = (), Error = Error>
A method for performing the Flush request.
Flushes any pending IO buffers to disk to ensure durability.
Sourcepub fn iter(&self) -> impl Stream<Item = Entry, Error = Error>
pub fn iter(&self) -> impl Stream<Item = Entry, Error = Error>
A method for performing the Iter request.
The result is a Stream of ordered key value pairs.
Examples found in repository?
7fn main() {
8 let client = sled_web::Client::new("http://localhost:3000".parse().unwrap());
9
10 let get_a = client
11 .get(vec![6])
12 .map(|v| {
13 println!("Entry `6` was `None`, as expected");
14 assert!(v.is_none())
15 })
16 .map_err(|e| eprintln!("{}", e));
17
18 let set = client
19 .set(vec![6], vec![1, 2, 3, 4, 5, 6, 7, 8, 9])
20 .map(|_| println!("Entry `6` successfully set"))
21 .map_err(|e| eprintln!("{}", e));
22
23 let get_b = client
24 .get(vec![6])
25 .map(|v| {
26 assert!(v.is_some());
27 println!("Successfully retrieved `6`: {:?}", v)
28 })
29 .map_err(|e| eprintln!("{}", e));
30
31 let iter = client
32 .iter()
33 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
34 .map_err(|e| eprintln!("Error: {}", e))
35 .collect()
36 .map(|_| ())
37 .map_err(|_| ());
38
39 let scan = client
40 .scan(vec![3])
41 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
42 .map_err(|e| eprintln!("Error: {}", e))
43 .collect()
44 .map(|_| ())
45 .map_err(|_| ());
46
47 let scan_range = client
48 .scan_range(vec![2], vec![5])
49 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
50 .map_err(|e| eprintln!("Error: {}", e))
51 .collect()
52 .map(|_| ())
53 .map_err(|_| ());
54
55 let max = client
56 .max()
57 .map(|entry| println!("Max: {:?}", entry))
58 .map_err(|e| eprintln!("Error: {}", e));
59
60 let pred = client
61 .pred(vec![4])
62 .map(|entry| println!("Pred to [4]: {:?}", entry))
63 .map_err(|e| eprintln!("Error: {}", e));
64
65 let pred_incl = client
66 .pred_incl(vec![4])
67 .map(|entry| println!("PredIncl to [4]: {:?}", entry))
68 .map_err(|e| eprintln!("Error: {}", e));
69
70 let succ = client
71 .succ(vec![2])
72 .map(|entry| println!("Succ to [2]: {:?}", entry))
73 .map_err(|e| eprintln!("Error: {}", e));
74
75 let succ_incl = client
76 .succ_incl(vec![2])
77 .map(|entry| println!("SuccIncl to [2]: {:?}", entry))
78 .map_err(|e| eprintln!("Error: {}", e));
79
80 hyper::rt::run({
81 get_a
82 .then(|_| set)
83 .then(|_| get_b)
84 .then(|_| {
85 println!("Iter all elements...");
86 iter
87 })
88 .then(|_| {
89 println!("Scan elements starting from `vec![3]`");
90 scan
91 })
92 .then(|_| {
93 println!("Scan range elements starting from `vec![2]` to `vec![5]`");
94 scan_range
95 })
96 .then(|_| max)
97 .then(|_| pred)
98 .then(|_| pred_incl)
99 .then(|_| succ)
100 .then(|_| succ_incl)
101 });
102}Sourcepub fn scan(&self, key: Key) -> impl Stream<Item = Entry, Error = Error>
pub fn scan(&self, key: Key) -> impl Stream<Item = Entry, Error = Error>
A method for performing the Scan request.
The result is a Stream of ordered key value pairs, starting from the given key.
Examples found in repository?
7fn main() {
8 let client = sled_web::Client::new("http://localhost:3000".parse().unwrap());
9
10 let get_a = client
11 .get(vec![6])
12 .map(|v| {
13 println!("Entry `6` was `None`, as expected");
14 assert!(v.is_none())
15 })
16 .map_err(|e| eprintln!("{}", e));
17
18 let set = client
19 .set(vec![6], vec![1, 2, 3, 4, 5, 6, 7, 8, 9])
20 .map(|_| println!("Entry `6` successfully set"))
21 .map_err(|e| eprintln!("{}", e));
22
23 let get_b = client
24 .get(vec![6])
25 .map(|v| {
26 assert!(v.is_some());
27 println!("Successfully retrieved `6`: {:?}", v)
28 })
29 .map_err(|e| eprintln!("{}", e));
30
31 let iter = client
32 .iter()
33 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
34 .map_err(|e| eprintln!("Error: {}", e))
35 .collect()
36 .map(|_| ())
37 .map_err(|_| ());
38
39 let scan = client
40 .scan(vec![3])
41 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
42 .map_err(|e| eprintln!("Error: {}", e))
43 .collect()
44 .map(|_| ())
45 .map_err(|_| ());
46
47 let scan_range = client
48 .scan_range(vec![2], vec![5])
49 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
50 .map_err(|e| eprintln!("Error: {}", e))
51 .collect()
52 .map(|_| ())
53 .map_err(|_| ());
54
55 let max = client
56 .max()
57 .map(|entry| println!("Max: {:?}", entry))
58 .map_err(|e| eprintln!("Error: {}", e));
59
60 let pred = client
61 .pred(vec![4])
62 .map(|entry| println!("Pred to [4]: {:?}", entry))
63 .map_err(|e| eprintln!("Error: {}", e));
64
65 let pred_incl = client
66 .pred_incl(vec![4])
67 .map(|entry| println!("PredIncl to [4]: {:?}", entry))
68 .map_err(|e| eprintln!("Error: {}", e));
69
70 let succ = client
71 .succ(vec![2])
72 .map(|entry| println!("Succ to [2]: {:?}", entry))
73 .map_err(|e| eprintln!("Error: {}", e));
74
75 let succ_incl = client
76 .succ_incl(vec![2])
77 .map(|entry| println!("SuccIncl to [2]: {:?}", entry))
78 .map_err(|e| eprintln!("Error: {}", e));
79
80 hyper::rt::run({
81 get_a
82 .then(|_| set)
83 .then(|_| get_b)
84 .then(|_| {
85 println!("Iter all elements...");
86 iter
87 })
88 .then(|_| {
89 println!("Scan elements starting from `vec![3]`");
90 scan
91 })
92 .then(|_| {
93 println!("Scan range elements starting from `vec![2]` to `vec![5]`");
94 scan_range
95 })
96 .then(|_| max)
97 .then(|_| pred)
98 .then(|_| pred_incl)
99 .then(|_| succ)
100 .then(|_| succ_incl)
101 });
102}Sourcepub fn scan_range(
&self,
start: Key,
end: Key,
) -> impl Stream<Item = Entry, Error = Error>
pub fn scan_range( &self, start: Key, end: Key, ) -> impl Stream<Item = Entry, Error = Error>
A method for performing the Scan request.
The result is a Stream of all ordered key value pairs within the given key range.
Examples found in repository?
7fn main() {
8 let client = sled_web::Client::new("http://localhost:3000".parse().unwrap());
9
10 let get_a = client
11 .get(vec![6])
12 .map(|v| {
13 println!("Entry `6` was `None`, as expected");
14 assert!(v.is_none())
15 })
16 .map_err(|e| eprintln!("{}", e));
17
18 let set = client
19 .set(vec![6], vec![1, 2, 3, 4, 5, 6, 7, 8, 9])
20 .map(|_| println!("Entry `6` successfully set"))
21 .map_err(|e| eprintln!("{}", e));
22
23 let get_b = client
24 .get(vec![6])
25 .map(|v| {
26 assert!(v.is_some());
27 println!("Successfully retrieved `6`: {:?}", v)
28 })
29 .map_err(|e| eprintln!("{}", e));
30
31 let iter = client
32 .iter()
33 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
34 .map_err(|e| eprintln!("Error: {}", e))
35 .collect()
36 .map(|_| ())
37 .map_err(|_| ());
38
39 let scan = client
40 .scan(vec![3])
41 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
42 .map_err(|e| eprintln!("Error: {}", e))
43 .collect()
44 .map(|_| ())
45 .map_err(|_| ());
46
47 let scan_range = client
48 .scan_range(vec![2], vec![5])
49 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
50 .map_err(|e| eprintln!("Error: {}", e))
51 .collect()
52 .map(|_| ())
53 .map_err(|_| ());
54
55 let max = client
56 .max()
57 .map(|entry| println!("Max: {:?}", entry))
58 .map_err(|e| eprintln!("Error: {}", e));
59
60 let pred = client
61 .pred(vec![4])
62 .map(|entry| println!("Pred to [4]: {:?}", entry))
63 .map_err(|e| eprintln!("Error: {}", e));
64
65 let pred_incl = client
66 .pred_incl(vec![4])
67 .map(|entry| println!("PredIncl to [4]: {:?}", entry))
68 .map_err(|e| eprintln!("Error: {}", e));
69
70 let succ = client
71 .succ(vec![2])
72 .map(|entry| println!("Succ to [2]: {:?}", entry))
73 .map_err(|e| eprintln!("Error: {}", e));
74
75 let succ_incl = client
76 .succ_incl(vec![2])
77 .map(|entry| println!("SuccIncl to [2]: {:?}", entry))
78 .map_err(|e| eprintln!("Error: {}", e));
79
80 hyper::rt::run({
81 get_a
82 .then(|_| set)
83 .then(|_| get_b)
84 .then(|_| {
85 println!("Iter all elements...");
86 iter
87 })
88 .then(|_| {
89 println!("Scan elements starting from `vec![3]`");
90 scan
91 })
92 .then(|_| {
93 println!("Scan range elements starting from `vec![2]` to `vec![5]`");
94 scan_range
95 })
96 .then(|_| max)
97 .then(|_| pred)
98 .then(|_| pred_incl)
99 .then(|_| succ)
100 .then(|_| succ_incl)
101 });
102}Sourcepub fn max(&self) -> impl Future<Item = Option<Entry>, Error = Error>
pub fn max(&self) -> impl Future<Item = Option<Entry>, Error = Error>
A method for perfomring the Max request.
The result is a Future yielding the greatest entry in the sled::Tree.
Returns None if there are no entries within the tree.
Examples found in repository?
7fn main() {
8 let client = sled_web::Client::new("http://localhost:3000".parse().unwrap());
9
10 let get_a = client
11 .get(vec![6])
12 .map(|v| {
13 println!("Entry `6` was `None`, as expected");
14 assert!(v.is_none())
15 })
16 .map_err(|e| eprintln!("{}", e));
17
18 let set = client
19 .set(vec![6], vec![1, 2, 3, 4, 5, 6, 7, 8, 9])
20 .map(|_| println!("Entry `6` successfully set"))
21 .map_err(|e| eprintln!("{}", e));
22
23 let get_b = client
24 .get(vec![6])
25 .map(|v| {
26 assert!(v.is_some());
27 println!("Successfully retrieved `6`: {:?}", v)
28 })
29 .map_err(|e| eprintln!("{}", e));
30
31 let iter = client
32 .iter()
33 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
34 .map_err(|e| eprintln!("Error: {}", e))
35 .collect()
36 .map(|_| ())
37 .map_err(|_| ());
38
39 let scan = client
40 .scan(vec![3])
41 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
42 .map_err(|e| eprintln!("Error: {}", e))
43 .collect()
44 .map(|_| ())
45 .map_err(|_| ());
46
47 let scan_range = client
48 .scan_range(vec![2], vec![5])
49 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
50 .map_err(|e| eprintln!("Error: {}", e))
51 .collect()
52 .map(|_| ())
53 .map_err(|_| ());
54
55 let max = client
56 .max()
57 .map(|entry| println!("Max: {:?}", entry))
58 .map_err(|e| eprintln!("Error: {}", e));
59
60 let pred = client
61 .pred(vec![4])
62 .map(|entry| println!("Pred to [4]: {:?}", entry))
63 .map_err(|e| eprintln!("Error: {}", e));
64
65 let pred_incl = client
66 .pred_incl(vec![4])
67 .map(|entry| println!("PredIncl to [4]: {:?}", entry))
68 .map_err(|e| eprintln!("Error: {}", e));
69
70 let succ = client
71 .succ(vec![2])
72 .map(|entry| println!("Succ to [2]: {:?}", entry))
73 .map_err(|e| eprintln!("Error: {}", e));
74
75 let succ_incl = client
76 .succ_incl(vec![2])
77 .map(|entry| println!("SuccIncl to [2]: {:?}", entry))
78 .map_err(|e| eprintln!("Error: {}", e));
79
80 hyper::rt::run({
81 get_a
82 .then(|_| set)
83 .then(|_| get_b)
84 .then(|_| {
85 println!("Iter all elements...");
86 iter
87 })
88 .then(|_| {
89 println!("Scan elements starting from `vec![3]`");
90 scan
91 })
92 .then(|_| {
93 println!("Scan range elements starting from `vec![2]` to `vec![5]`");
94 scan_range
95 })
96 .then(|_| max)
97 .then(|_| pred)
98 .then(|_| pred_incl)
99 .then(|_| succ)
100 .then(|_| succ_incl)
101 });
102}Sourcepub fn pred(&self, key: Key) -> impl Future<Item = Option<Entry>, Error = Error>
pub fn pred(&self, key: Key) -> impl Future<Item = Option<Entry>, Error = Error>
A method for performing the Pred request.
Given the key for an entry in the sled::Tree, produce a Future with the preceding
entry.
Examples found in repository?
7fn main() {
8 let client = sled_web::Client::new("http://localhost:3000".parse().unwrap());
9
10 let get_a = client
11 .get(vec![6])
12 .map(|v| {
13 println!("Entry `6` was `None`, as expected");
14 assert!(v.is_none())
15 })
16 .map_err(|e| eprintln!("{}", e));
17
18 let set = client
19 .set(vec![6], vec![1, 2, 3, 4, 5, 6, 7, 8, 9])
20 .map(|_| println!("Entry `6` successfully set"))
21 .map_err(|e| eprintln!("{}", e));
22
23 let get_b = client
24 .get(vec![6])
25 .map(|v| {
26 assert!(v.is_some());
27 println!("Successfully retrieved `6`: {:?}", v)
28 })
29 .map_err(|e| eprintln!("{}", e));
30
31 let iter = client
32 .iter()
33 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
34 .map_err(|e| eprintln!("Error: {}", e))
35 .collect()
36 .map(|_| ())
37 .map_err(|_| ());
38
39 let scan = client
40 .scan(vec![3])
41 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
42 .map_err(|e| eprintln!("Error: {}", e))
43 .collect()
44 .map(|_| ())
45 .map_err(|_| ());
46
47 let scan_range = client
48 .scan_range(vec![2], vec![5])
49 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
50 .map_err(|e| eprintln!("Error: {}", e))
51 .collect()
52 .map(|_| ())
53 .map_err(|_| ());
54
55 let max = client
56 .max()
57 .map(|entry| println!("Max: {:?}", entry))
58 .map_err(|e| eprintln!("Error: {}", e));
59
60 let pred = client
61 .pred(vec![4])
62 .map(|entry| println!("Pred to [4]: {:?}", entry))
63 .map_err(|e| eprintln!("Error: {}", e));
64
65 let pred_incl = client
66 .pred_incl(vec![4])
67 .map(|entry| println!("PredIncl to [4]: {:?}", entry))
68 .map_err(|e| eprintln!("Error: {}", e));
69
70 let succ = client
71 .succ(vec![2])
72 .map(|entry| println!("Succ to [2]: {:?}", entry))
73 .map_err(|e| eprintln!("Error: {}", e));
74
75 let succ_incl = client
76 .succ_incl(vec![2])
77 .map(|entry| println!("SuccIncl to [2]: {:?}", entry))
78 .map_err(|e| eprintln!("Error: {}", e));
79
80 hyper::rt::run({
81 get_a
82 .then(|_| set)
83 .then(|_| get_b)
84 .then(|_| {
85 println!("Iter all elements...");
86 iter
87 })
88 .then(|_| {
89 println!("Scan elements starting from `vec![3]`");
90 scan
91 })
92 .then(|_| {
93 println!("Scan range elements starting from `vec![2]` to `vec![5]`");
94 scan_range
95 })
96 .then(|_| max)
97 .then(|_| pred)
98 .then(|_| pred_incl)
99 .then(|_| succ)
100 .then(|_| succ_incl)
101 });
102}Sourcepub fn pred_incl(
&self,
key: Key,
) -> impl Future<Item = Option<Entry>, Error = Error>
pub fn pred_incl( &self, key: Key, ) -> impl Future<Item = Option<Entry>, Error = Error>
A method for performing the PredIncl request.
Given the key for an entry in the sled::Tree, produce a Future with the preceding
entry or the entry associated with the key if there is one.
Examples found in repository?
7fn main() {
8 let client = sled_web::Client::new("http://localhost:3000".parse().unwrap());
9
10 let get_a = client
11 .get(vec![6])
12 .map(|v| {
13 println!("Entry `6` was `None`, as expected");
14 assert!(v.is_none())
15 })
16 .map_err(|e| eprintln!("{}", e));
17
18 let set = client
19 .set(vec![6], vec![1, 2, 3, 4, 5, 6, 7, 8, 9])
20 .map(|_| println!("Entry `6` successfully set"))
21 .map_err(|e| eprintln!("{}", e));
22
23 let get_b = client
24 .get(vec![6])
25 .map(|v| {
26 assert!(v.is_some());
27 println!("Successfully retrieved `6`: {:?}", v)
28 })
29 .map_err(|e| eprintln!("{}", e));
30
31 let iter = client
32 .iter()
33 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
34 .map_err(|e| eprintln!("Error: {}", e))
35 .collect()
36 .map(|_| ())
37 .map_err(|_| ());
38
39 let scan = client
40 .scan(vec![3])
41 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
42 .map_err(|e| eprintln!("Error: {}", e))
43 .collect()
44 .map(|_| ())
45 .map_err(|_| ());
46
47 let scan_range = client
48 .scan_range(vec![2], vec![5])
49 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
50 .map_err(|e| eprintln!("Error: {}", e))
51 .collect()
52 .map(|_| ())
53 .map_err(|_| ());
54
55 let max = client
56 .max()
57 .map(|entry| println!("Max: {:?}", entry))
58 .map_err(|e| eprintln!("Error: {}", e));
59
60 let pred = client
61 .pred(vec![4])
62 .map(|entry| println!("Pred to [4]: {:?}", entry))
63 .map_err(|e| eprintln!("Error: {}", e));
64
65 let pred_incl = client
66 .pred_incl(vec![4])
67 .map(|entry| println!("PredIncl to [4]: {:?}", entry))
68 .map_err(|e| eprintln!("Error: {}", e));
69
70 let succ = client
71 .succ(vec![2])
72 .map(|entry| println!("Succ to [2]: {:?}", entry))
73 .map_err(|e| eprintln!("Error: {}", e));
74
75 let succ_incl = client
76 .succ_incl(vec![2])
77 .map(|entry| println!("SuccIncl to [2]: {:?}", entry))
78 .map_err(|e| eprintln!("Error: {}", e));
79
80 hyper::rt::run({
81 get_a
82 .then(|_| set)
83 .then(|_| get_b)
84 .then(|_| {
85 println!("Iter all elements...");
86 iter
87 })
88 .then(|_| {
89 println!("Scan elements starting from `vec![3]`");
90 scan
91 })
92 .then(|_| {
93 println!("Scan range elements starting from `vec![2]` to `vec![5]`");
94 scan_range
95 })
96 .then(|_| max)
97 .then(|_| pred)
98 .then(|_| pred_incl)
99 .then(|_| succ)
100 .then(|_| succ_incl)
101 });
102}Sourcepub fn succ(&self, key: Key) -> impl Future<Item = Option<Entry>, Error = Error>
pub fn succ(&self, key: Key) -> impl Future<Item = Option<Entry>, Error = Error>
A method for performing the Succ request.
Given the key for an entry in the sled::Tree, produce a Future with the following
entry.
Examples found in repository?
7fn main() {
8 let client = sled_web::Client::new("http://localhost:3000".parse().unwrap());
9
10 let get_a = client
11 .get(vec![6])
12 .map(|v| {
13 println!("Entry `6` was `None`, as expected");
14 assert!(v.is_none())
15 })
16 .map_err(|e| eprintln!("{}", e));
17
18 let set = client
19 .set(vec![6], vec![1, 2, 3, 4, 5, 6, 7, 8, 9])
20 .map(|_| println!("Entry `6` successfully set"))
21 .map_err(|e| eprintln!("{}", e));
22
23 let get_b = client
24 .get(vec![6])
25 .map(|v| {
26 assert!(v.is_some());
27 println!("Successfully retrieved `6`: {:?}", v)
28 })
29 .map_err(|e| eprintln!("{}", e));
30
31 let iter = client
32 .iter()
33 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
34 .map_err(|e| eprintln!("Error: {}", e))
35 .collect()
36 .map(|_| ())
37 .map_err(|_| ());
38
39 let scan = client
40 .scan(vec![3])
41 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
42 .map_err(|e| eprintln!("Error: {}", e))
43 .collect()
44 .map(|_| ())
45 .map_err(|_| ());
46
47 let scan_range = client
48 .scan_range(vec![2], vec![5])
49 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
50 .map_err(|e| eprintln!("Error: {}", e))
51 .collect()
52 .map(|_| ())
53 .map_err(|_| ());
54
55 let max = client
56 .max()
57 .map(|entry| println!("Max: {:?}", entry))
58 .map_err(|e| eprintln!("Error: {}", e));
59
60 let pred = client
61 .pred(vec![4])
62 .map(|entry| println!("Pred to [4]: {:?}", entry))
63 .map_err(|e| eprintln!("Error: {}", e));
64
65 let pred_incl = client
66 .pred_incl(vec![4])
67 .map(|entry| println!("PredIncl to [4]: {:?}", entry))
68 .map_err(|e| eprintln!("Error: {}", e));
69
70 let succ = client
71 .succ(vec![2])
72 .map(|entry| println!("Succ to [2]: {:?}", entry))
73 .map_err(|e| eprintln!("Error: {}", e));
74
75 let succ_incl = client
76 .succ_incl(vec![2])
77 .map(|entry| println!("SuccIncl to [2]: {:?}", entry))
78 .map_err(|e| eprintln!("Error: {}", e));
79
80 hyper::rt::run({
81 get_a
82 .then(|_| set)
83 .then(|_| get_b)
84 .then(|_| {
85 println!("Iter all elements...");
86 iter
87 })
88 .then(|_| {
89 println!("Scan elements starting from `vec![3]`");
90 scan
91 })
92 .then(|_| {
93 println!("Scan range elements starting from `vec![2]` to `vec![5]`");
94 scan_range
95 })
96 .then(|_| max)
97 .then(|_| pred)
98 .then(|_| pred_incl)
99 .then(|_| succ)
100 .then(|_| succ_incl)
101 });
102}Sourcepub fn succ_incl(
&self,
key: Key,
) -> impl Future<Item = Option<Entry>, Error = Error>
pub fn succ_incl( &self, key: Key, ) -> impl Future<Item = Option<Entry>, Error = Error>
A method for performing the SuccIncl request.
Given the key for an entry in the sled::Tree, produce a Future with the following
entry or the entry associated with the key if there is one.
Examples found in repository?
7fn main() {
8 let client = sled_web::Client::new("http://localhost:3000".parse().unwrap());
9
10 let get_a = client
11 .get(vec![6])
12 .map(|v| {
13 println!("Entry `6` was `None`, as expected");
14 assert!(v.is_none())
15 })
16 .map_err(|e| eprintln!("{}", e));
17
18 let set = client
19 .set(vec![6], vec![1, 2, 3, 4, 5, 6, 7, 8, 9])
20 .map(|_| println!("Entry `6` successfully set"))
21 .map_err(|e| eprintln!("{}", e));
22
23 let get_b = client
24 .get(vec![6])
25 .map(|v| {
26 assert!(v.is_some());
27 println!("Successfully retrieved `6`: {:?}", v)
28 })
29 .map_err(|e| eprintln!("{}", e));
30
31 let iter = client
32 .iter()
33 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
34 .map_err(|e| eprintln!("Error: {}", e))
35 .collect()
36 .map(|_| ())
37 .map_err(|_| ());
38
39 let scan = client
40 .scan(vec![3])
41 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
42 .map_err(|e| eprintln!("Error: {}", e))
43 .collect()
44 .map(|_| ())
45 .map_err(|_| ());
46
47 let scan_range = client
48 .scan_range(vec![2], vec![5])
49 .map(|(k, v)| println!(" ({:?}, {:?})", k, v))
50 .map_err(|e| eprintln!("Error: {}", e))
51 .collect()
52 .map(|_| ())
53 .map_err(|_| ());
54
55 let max = client
56 .max()
57 .map(|entry| println!("Max: {:?}", entry))
58 .map_err(|e| eprintln!("Error: {}", e));
59
60 let pred = client
61 .pred(vec![4])
62 .map(|entry| println!("Pred to [4]: {:?}", entry))
63 .map_err(|e| eprintln!("Error: {}", e));
64
65 let pred_incl = client
66 .pred_incl(vec![4])
67 .map(|entry| println!("PredIncl to [4]: {:?}", entry))
68 .map_err(|e| eprintln!("Error: {}", e));
69
70 let succ = client
71 .succ(vec![2])
72 .map(|entry| println!("Succ to [2]: {:?}", entry))
73 .map_err(|e| eprintln!("Error: {}", e));
74
75 let succ_incl = client
76 .succ_incl(vec![2])
77 .map(|entry| println!("SuccIncl to [2]: {:?}", entry))
78 .map_err(|e| eprintln!("Error: {}", e));
79
80 hyper::rt::run({
81 get_a
82 .then(|_| set)
83 .then(|_| get_b)
84 .then(|_| {
85 println!("Iter all elements...");
86 iter
87 })
88 .then(|_| {
89 println!("Scan elements starting from `vec![3]`");
90 scan
91 })
92 .then(|_| {
93 println!("Scan range elements starting from `vec![2]` to `vec![5]`");
94 scan_range
95 })
96 .then(|_| max)
97 .then(|_| pred)
98 .then(|_| pred_incl)
99 .then(|_| succ)
100 .then(|_| succ_incl)
101 });
102}Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Client
impl !RefUnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl !UnwindSafe for Client
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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