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