Skip to content

Tests don't pass on fresh Master pull #91

Closed
@brianbruggeman

Description

@brianbruggeman

I'm running macOS 10.14.6.

Reproduction Steps:

git clone https://github.com/aerospike/aerospike-client-rust.git \
 && docker run -v ${HOME}/.aerospike/data:/opt/aerospike/data -e "NAMESPACE=test" --rm -d -p 3000:3000 --name aerospike aerospike/aerospike-server \
 && cd aerospike-client-rust \
 && cargo test

Results:

running 20 tests
test bin::tests::into_bins ... ok
test net::parser::tests::read_addr_part ... ok
test net::host::tests::to_hosts ... ok
test key::tests::unsupported_float_key ... ok
test key::tests::unsupported_u64_key ... ok
test net::parser::tests::read_addr_tuple ... ok
test query::filter::tests::geo_filter_macros ... ok
test net::parser::tests::read_hosts ... ok
test record::tests::ttl_expiration_future ... ok
test record::tests::ttl_expiration_past ... ok
test record::tests::ttl_never_expires ... ok
test result_code::tests::from_result_code ... ok
test result_code::tests::from_unknown_result_code ... ok
test result_code::tests::into_string ... ok
test result_code::tests::unknown_into_string ... ok
test value::tests::as_geo ... ok
test value::tests::as_string ... ok
test key::tests::int_keys ... ok
test key::tests::string_keys ... ok
test key::tests::blob_keys ... ok

test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

     Running target/debug/deps/client-0cb4beb2f607c922

running 5 tests
test cluster_name ... ok
test nodes ... ok
test get_node ... ok
test node_names ... ok
test close ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

     Running target/debug/deps/lib-33687cbfd16d35e7

running 27 tests
test src::batch::batch_get ... ok
test src::cdt_bitwise::cdt_bitwise ... ok
test src::cdt_list::cdt_list ... ok
test src::cdt_map::map_operations ... ok
test src::exp::expression_rec_ops ... FAILED
test src::exp::expression_commands ... ok
test src::hll::hll ... ok
test src::index::recreate_index ... ok
test src::kv::connect ... ok
test src::exp::expression_condition ... ok
test src::query::query_multi_consumer ... ok
test src::query::query_nobins ... ok
test src::exp::expression_data_types ... ok
test src::exp::expression_compare ... ok
test src::query::query_node ... ok
test src::query::query_single_consumer ... ok
test src::exp_hll::expression_hll ... ok
test src::task::index_task_test ... ok
test src::truncate::truncate ... ok
test src::scan::scan_multi_consumer ... ok
test src::udf::execute_udf ... ok
test src::scan::scan_single_consumer ... ok
test src::scan::scan_node ... ok
test src::task::register_task_test ... ok
test src::exp_bitwise::expression_bitwise ... ok
test src::exp_list::expression_list ... ok
test src::exp_map::expression_map ... ok

failures:

---- src::exp::expression_rec_ops stdout ----
thread 'src::exp::expression_rec_ops' panicked at 'assertion failed: `(left == right)`
  left: `0`,
 right: `100`: DEVICE SIZE Test Failed', tests/src/exp.rs:244:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Running cargo clippy:

warning: this could be a `const fn`
   --> src/value.rs:221:5
    |
221 | /     pub fn is_nil(&self) -> bool {
222 | |         match *self {
223 | |             Value::Nil => true,
224 | |             _ => false,
225 | |         }
226 | |     }
    | |_____^
    |
note: the lint level is defined here
   --> src/lib.rs:25:40
    |
25  | #![warn(clippy::all, clippy::pedantic, clippy::nursery)]
    |                                        ^^^^^^^^^^^^^^^
    = note: `#[warn(clippy::missing_const_for_fn)]` implied by `#[warn(clippy::nursery)]`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn

warning: match expression looks like `matches!` macro
   --> src/value.rs:222:9
    |
222 | /         match *self {
223 | |             Value::Nil => true,
224 | |             _ => false,
225 | |         }
    | |_________^ help: try this: `matches!(*self, Value::Nil)`
    |
note: the lint level is defined here
   --> src/lib.rs:25:9
    |
25  | #![warn(clippy::all, clippy::pedantic, clippy::nursery)]
    |         ^^^^^^^^^^^
    = note: `#[warn(clippy::match_like_matches_macro)]` implied by `#[warn(clippy::all)]`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro

warning: this could be a `const fn`
  --> src/bin.rs:70:5
   |
70 | /     pub fn is_all(&self) -> bool {
71 | |         match *self {
72 | |             Bins::All => true,
73 | |             _ => false,
74 | |         }
75 | |     }
   | |_____^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn

warning: match expression looks like `matches!` macro
  --> src/bin.rs:71:9
   |
71 | /         match *self {
72 | |             Bins::All => true,
73 | |             _ => false,
74 | |         }
   | |_________^ help: try this: `matches!(*self, Bins::All)`
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro

warning: this could be a `const fn`
  --> src/bin.rs:78:5
   |
78 | /     pub fn is_none(&self) -> bool {
79 | |         match *self {
80 | |             Bins::None => true,
81 | |             _ => false,
82 | |         }
83 | |     }
   | |_____^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn

warning: match expression looks like `matches!` macro
  --> src/bin.rs:79:9
   |
79 | /         match *self {
80 | |             Bins::None => true,
81 | |             _ => false,
82 | |         }
   | |_________^ help: try this: `matches!(*self, Bins::None)`
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro

warning: redundant closure found
   --> src/batch/batch_executor.rs:102:44
    |
102 |             map.entry(node).or_insert_with(|| vec![]).push(idx);
    |                                            ^^^^^^^^^ help: remove closure as shown: `$crate::vec::Vec::new`
    |
note: the lint level is defined here
   --> src/lib.rs:25:9
    |
25  | #![warn(clippy::all, clippy::pedantic, clippy::nursery)]
    |         ^^^^^^^^^^^
    = note: `#[warn(clippy::redundant_closure)]` implied by `#[warn(clippy::all)]`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure

warning: this could be a `const fn`
   --> src/cluster/node.rs:139:5
    |
139 | /     fn services_name(&self) -> &'static str {
140 | |         if self.client_policy.use_services_alternate {
141 | |             "services-alternate"
142 | |         } else {
143 | |             "services"
144 | |         }
145 | |     }
    | |_____^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn

warning: comparison to empty slice
   --> src/cluster/node.rs:196:36
    |
196 |             Some(friend_string) if friend_string == "" => return Ok(friends),
    |                                    ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `friend_string.is_empty()`
    |
note: the lint level is defined here
   --> src/lib.rs:25:9
    |
25  | #![warn(clippy::all, clippy::pedantic, clippy::nursery)]
    |         ^^^^^^^^^^^
    = note: `#[warn(clippy::comparison_to_empty)]` implied by `#[warn(clippy::all)]`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty

warning: using `Result.or_else(|x| Err(y))`, which is more succinctly expressed as `map_err(|x| y)`
   --> src/cluster/node.rs:290:9
    |
290 | /         Message::info(&mut conn, commands).or_else(|e| {
291 | |             conn.invalidate();
292 | |             Err(e)
293 | |         })
    | |__________^
    |
note: the lint level is defined here
   --> src/lib.rs:25:9
    |
25  | #![warn(clippy::all, clippy::pedantic, clippy::nursery)]
    |         ^^^^^^^^^^^
    = note: `#[warn(clippy::bind_instead_of_map)]` implied by `#[warn(clippy::all)]`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map
help: try this
    |
290 |         Message::info(&mut conn, commands).map_err(|e| {
291 |             conn.invalidate();
292 |             e
    |

warning: using `Result.or_else(|x| Err(y))`, which is more succinctly expressed as `map_err(|x| y)`
   --> src/cluster/mod.rs:249:22
    |
249 |           let tokens = PartitionTokenizer::new(&mut conn).or_else(|e| {
    |  ______________________^
250 | |             conn.invalidate();
251 | |             Err(e)
252 | |         })?;
    | |__________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map
help: try this
    |
249 |         let tokens = PartitionTokenizer::new(&mut conn).map_err(|e| {
250 |             conn.invalidate();
251 |             e
    |

warning: wildcard match will miss any future added variants
   --> src/cluster/mod.rs:324:17
    |
324 |                 _ => {
    |                 ^ help: try this: `std::prelude::v1::Err(..)`
    |
note: the lint level is defined here
   --> src/lib.rs:25:22
    |
25  | #![warn(clippy::all, clippy::pedantic, clippy::nursery)]
    |                      ^^^^^^^^^^^^^^^^
    = note: `#[warn(clippy::match_wildcard_for_single_variants)]` implied by `#[warn(clippy::pedantic)]`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wildcard_for_single_variants

warning: wildcard match will miss any future added variants
  --> src/commands/batch_read_command.rs:93:17
   |
93 |                 _ => continue, // Node is currently inactive. Retry.
   |                 ^ help: try this: `std::prelude::v1::Err(..)`
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wildcard_for_single_variants

warning: match expression looks like `matches!` macro
   --> src/commands/buffer.rs:511:27
    |
511 |               let each_op = match operation.data {
    |  ___________________________^
512 | |                 OperationData::CdtMapOp(_) | OperationData::CdtBitOp(_) => true,
513 | |                 _ => false,
514 | |             };
    | |_____________^ help: try this: `matches!(operation.data, OperationData::CdtMapOp(_) | OperationData::CdtBitOp(_))`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro

warning: comparison to empty slice
   --> src/commands/buffer.rs:606:12
    |
606 |         if namespace != "" {
    |            ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!namespace.is_empty()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty

warning: comparison to empty slice
   --> src/commands/buffer.rs:611:12
    |
611 |         if set_name != "" {
    |            ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!set_name.is_empty()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty

warning: comparison to empty slice
   --> src/commands/buffer.rs:653:12
    |
653 |         if namespace != "" {
    |            ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!namespace.is_empty()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty

warning: comparison to empty slice
   --> src/commands/buffer.rs:657:12
    |
657 |         if set_name != "" {
    |            ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!set_name.is_empty()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty

warning: comparison to empty slice
   --> src/commands/buffer.rs:712:12
    |
712 |         if statement.namespace != "" {
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!statement.namespace.is_empty()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty

warning: comparison to empty slice
   --> src/commands/buffer.rs:717:12
    |
717 |         if statement.set_name != "" {
    |            ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!statement.set_name.is_empty()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty

warning: comparison to empty slice
   --> src/commands/buffer.rs:723:16
    |
723 |             if index_name != "" {
    |                ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!index_name.is_empty()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty

warning: comparison to empty slice
   --> src/commands/buffer.rs:810:12
    |
810 |         if statement.namespace != "" {
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!statement.namespace.is_empty()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty

warning: comparison to empty slice
   --> src/commands/buffer.rs:820:12
    |
820 |         if statement.set_name != "" {
    |            ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!statement.set_name.is_empty()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty

warning: comparison to empty slice
   --> src/commands/buffer.rs:905:12
    |
905 |         if key.namespace != "" {
    |            ^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!key.namespace.is_empty()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty

warning: comparison to empty slice
   --> src/commands/buffer.rs:910:12
    |
910 |         if key.set_name != "" {
    |            ^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!key.set_name.is_empty()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty

warning: comparison to empty slice
    --> src/commands/buffer.rs:1073:12
     |
1073 |         if key.namespace != "" {
     |            ^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!key.namespace.is_empty()`
     |
     = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty

warning: comparison to empty slice
    --> src/commands/buffer.rs:1077:12
     |
1077 |         if key.set_name != "" {
     |            ^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!key.set_name.is_empty()`
     |
     = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty

warning: use Option::map_or_else instead of an if let/else
    --> src/commands/buffer.rs:1196:9
     |
1196 | /         if let Some(pos) = pos {
1197 | |             Ok(self.data_buffer[pos])
1198 | |         } else {
1199 | |             let res = self.data_buffer[self.data_offset];
1200 | |             self.data_offset += 1;
1201 | |             Ok(res)
1202 | |         }
     | |_________^
     |
note: the lint level is defined here
    --> src/lib.rs:25:22
     |
25   | #![warn(clippy::all, clippy::pedantic, clippy::nursery)]
     |                      ^^^^^^^^^^^^^^^^
     = note: `#[warn(clippy::option_if_let_else)]` implied by `#[warn(clippy::pedantic)]`
     = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else
help: try
     |
1196 |         pos.map_or_else(|| {
1197 |             let res = self.data_buffer[self.data_offset];
1198 |             self.data_offset += 1;
1199 |             Ok(res)
1200 |         }, |pos| Ok(self.data_buffer[pos]))
     |

warning: use Option::map_or_else instead of an if let/else
    --> src/commands/buffer.rs:1206:9
     |
1206 | /         if let Some(pos) = pos {
1207 | |             Ok(self.data_buffer[pos] as i8)
1208 | |         } else {
1209 | |             let res = self.data_buffer[self.data_offset] as i8;
1210 | |             self.data_offset += 1;
1211 | |             Ok(res)
1212 | |         }
     | |_________^
     |
     = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else
help: try
     |
1206 |         pos.map_or_else(|| {
1207 |             let res = self.data_buffer[self.data_offset] as i8;
1208 |             self.data_offset += 1;
1209 |             Ok(res)
1210 |         }, |pos| Ok(self.data_buffer[pos] as i8))
     |

warning: use Option::map_or_else instead of an if let/else
    --> src/commands/buffer.rs:1217:9
     |
1217 | /         if let Some(pos) = pos {
1218 | |             Ok(NetworkEndian::read_u16(&self.data_buffer[pos..pos + len]))
1219 | |         } else {
1220 | |             let res = NetworkEndian::read_u16(
...    |
1224 | |             Ok(res)
1225 | |         }
     | |_________^
     |
     = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else
help: try
     |
1217 |         pos.map_or_else(|| {
1218 |             let res = NetworkEndian::read_u16(
1219 |                 &self.data_buffer[self.data_offset..self.data_offset + len],
1220 |             );
1221 |             self.data_offset += len;
1222 |             Ok(res)
   ...

warning: use Option::map_or_else instead of an if let/else
    --> src/commands/buffer.rs:1235:9
     |
1235 | /         if let Some(pos) = pos {
1236 | |             Ok(NetworkEndian::read_u32(&self.data_buffer[pos..pos + len]))
1237 | |         } else {
1238 | |             let res = NetworkEndian::read_u32(
...    |
1242 | |             Ok(res)
1243 | |         }
     | |_________^
     |
     = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else
help: try
     |
1235 |         pos.map_or_else(|| {
1236 |             let res = NetworkEndian::read_u32(
1237 |                 &self.data_buffer[self.data_offset..self.data_offset + len],
1238 |             );
1239 |             self.data_offset += len;
1240 |             Ok(res)
   ...

warning: use Option::map_or_else instead of an if let/else
    --> src/commands/buffer.rs:1253:9
     |
1253 | /         if let Some(pos) = pos {
1254 | |             Ok(NetworkEndian::read_u64(&self.data_buffer[pos..pos + len]))
1255 | |         } else {
1256 | |             let res = NetworkEndian::read_u64(
...    |
1260 | |             Ok(res)
1261 | |         }
     | |_________^
     |
     = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else
help: try
     |
1253 |         pos.map_or_else(|| {
1254 |             let res = NetworkEndian::read_u64(
1255 |                 &self.data_buffer[self.data_offset..self.data_offset + len],
1256 |             );
1257 |             self.data_offset += len;
1258 |             Ok(res)
   ...

warning: use Option::map_or_else instead of an if let/else
    --> src/commands/buffer.rs:1277:9
     |
1277 | /         if let Some(pos) = pos {
1278 | |             Ok(NetworkEndian::read_f32(&self.data_buffer[pos..pos + len]))
1279 | |         } else {
1280 | |             let res = NetworkEndian::read_f32(
...    |
1284 | |             Ok(res)
1285 | |         }
     | |_________^
     |
     = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else
help: try
     |
1277 |         pos.map_or_else(|| {
1278 |             let res = NetworkEndian::read_f32(
1279 |                 &self.data_buffer[self.data_offset..self.data_offset + len],
1280 |             );
1281 |             self.data_offset += len;
1282 |             Ok(res)
   ...

warning: use Option::map_or_else instead of an if let/else
    --> src/commands/buffer.rs:1290:9
     |
1290 | /         if let Some(pos) = pos {
1291 | |             Ok(NetworkEndian::read_f64(&self.data_buffer[pos..pos + len]))
1292 | |         } else {
1293 | |             let res = NetworkEndian::read_f64(
...    |
1297 | |             Ok(res)
1298 | |         }
     | |_________^
     |
     = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else
help: try
     |
1290 |         pos.map_or_else(|| {
1291 |             let res = NetworkEndian::read_f64(
1292 |                 &self.data_buffer[self.data_offset..self.data_offset + len],
1293 |             );
1294 |             self.data_offset += len;
1295 |             Ok(res)
   ...

warning: `self.write_u8(0)?` is being shadowed
    --> src/commands/buffer.rs:1407:9
     |
1407 |         self.write_u8(0)?;
     |         ^^^^^^^^^^^^^^^^^
     |
note: the lint level is defined here
    --> src/lib.rs:25:22
     |
25   | #![warn(clippy::all, clippy::pedantic, clippy::nursery)]
     |                      ^^^^^^^^^^^^^^^^
     = note: `#[warn(clippy::shadow_unrelated)]` implied by `#[warn(clippy::pedantic)]`
note: initialization happens here
    --> src/commands/buffer.rs:1407:9
     |
1407 |         self.write_u8(0)?;
     |         ^^^^^^^^^^^^^^^^^
note: previous binding is here
    --> src/commands/buffer.rs:1406:33
     |
1406 |     pub fn write_geo(&mut self, val: &str) -> Result<usize> {
     |                                 ^^^
     = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated

warning: `self.write_u8(0)?` is being shadowed
    --> src/commands/buffer.rs:1408:9
     |
1408 |         self.write_u8(0)?;
     |         ^^^^^^^^^^^^^^^^^
     |
note: initialization happens here
    --> src/commands/buffer.rs:1408:9
     |
1408 |         self.write_u8(0)?;
     |         ^^^^^^^^^^^^^^^^^
note: previous binding is here
    --> src/commands/buffer.rs:1407:9
     |
1407 |         self.write_u8(0)?;
     |         ^^^^^^^^^^^^^^^^^
     = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated

warning: `self.write_u8(0)?` is being shadowed
    --> src/commands/buffer.rs:1409:9
     |
1409 |         self.write_u8(0)?;
     |         ^^^^^^^^^^^^^^^^^
     |
note: initialization happens here
    --> src/commands/buffer.rs:1409:9
     |
1409 |         self.write_u8(0)?;
     |         ^^^^^^^^^^^^^^^^^
note: previous binding is here
    --> src/commands/buffer.rs:1408:9
     |
1408 |         self.write_u8(0)?;
     |         ^^^^^^^^^^^^^^^^^
     = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated

warning: wildcard match will miss any future added variants
   --> src/commands/single_command.rs:103:17
    |
103 |                 _ => continue, // Node is currently inactive. Retry.
    |                 ^ help: try this: `std::prelude::v1::Err(..)`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wildcard_for_single_variants

warning: this could be a `const fn`
  --> src/commands/mod.rs:66:1
   |
66 | / pub fn keep_connection(err: &Error) -> bool {
67 | |     match *err {
68 | |         Error(ErrorKind::ServerError(result_code), _) => match result_code {
69 | |             ResultCode::KeyNotFoundError => true,
...  |
73 | |     }
74 | | }
   | |_^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn

warning: match expression looks like `matches!` macro
  --> src/commands/mod.rs:68:58
   |
68 |           Error(ErrorKind::ServerError(result_code), _) => match result_code {
   |  __________________________________________________________^
69 | |             ResultCode::KeyNotFoundError => true,
70 | |             _ => false,
71 | |         },
   | |_________^ help: try this: `matches!(result_code, ResultCode::KeyNotFoundError)`
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro

warning: this could be a `const fn`
   --> src/expressions/lists.rs:690:1
    |
690 | / fn get_value_type(return_type: ListReturnType) -> ExpType {
691 | |     if (return_type as u8 & !(ListReturnType::Inverted as u8)) == ListReturnType::Values as u8 {
692 | |         ExpType::LIST
693 | |     } else {
694 | |         ExpType::INT
695 | |     }
696 | | }
    | |_^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn

warning: this could be a `const fn`
   --> src/expressions/maps.rs:833:1
    |
833 | / fn get_value_type(return_type: MapReturnType) -> ExpType {
834 | |     let t = return_type as u8 & !(MapReturnType::Inverted as u8);
835 | |     if t == MapReturnType::Key as u8 || t == MapReturnType::Value as u8 {
836 | |         ExpType::LIST
...   |
841 | |     }
842 | | }
    | |_^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn

warning: use Option::map_or instead of an if let/else
   --> src/expressions/mod.rs:129:9
    |
129 | /         if let Some(bin) = bin {
130 | |             FilterExpression {
131 | |                 cmd,
132 | |                 val,
...   |
148 | |             }
149 | |         }
    | |_________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else
help: try
    |
129 |         bin.map_or(FilterExpression {
130 |                 cmd,
131 |                 val,
132 |                 bin: None,
133 |                 flags,
134 |                 module,
  ...

warning: parameter of type `HashMap` should be generalized over different hashers
   --> src/expressions/mod.rs:666:21
    |
666 | pub fn map_val(val: HashMap<Value, Value>) -> FilterExpression {
    |                     ^^^^^^^^^^^^^^^^^^^^^
    |
note: the lint level is defined here
   --> src/lib.rs:25:22
    |
25  | #![warn(clippy::all, clippy::pedantic, clippy::nursery)]
    |                      ^^^^^^^^^^^^^^^^
    = note: `#[warn(clippy::implicit_hasher)]` implied by `#[warn(clippy::pedantic)]`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher
help: consider adding a type parameter
    |
666 | pub fn map_val<S: ::std::hash::BuildHasher>(val: HashMap<Value, Value, S>) -> FilterExpression {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^      ^^^^^^^^^^^^^^^^^^^^^^^^

warning: this could be a `const fn`
   --> src/expressions/mod.rs:703:1
    |
703 | / pub fn and(exps: Vec<FilterExpression>) -> FilterExpression {
704 | |     FilterExpression {
705 | |         cmd: Some(ExpOp::And),
706 | |         val: None,
...   |
712 | |     }
713 | | }
    | |_^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn

warning: this could be a `const fn`
   --> src/expressions/mod.rs:721:1
    |
721 | / pub fn or(exps: Vec<FilterExpression>) -> FilterExpression {
722 | |     FilterExpression {
723 | |         cmd: Some(ExpOp::Or),
724 | |         val: None,
...   |
730 | |     }
731 | | }
    | |_^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn

warning: this could be a `const fn`
   --> src/msgpack/decoder.rs:222:1
    |
222 | / fn is_ext(byte: u8) -> bool {
223 | |     match byte {
224 | |         0xc7 | 0xc8 | 0xc9 | 0xd4 | 0xd5 | 0xd6 | 0xd7 | 0xd8 => true,
225 | |         _ => false,
226 | |     }
227 | | }
    | |_^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn

warning: match expression looks like `matches!` macro
   --> src/msgpack/decoder.rs:223:5
    |
223 | /     match byte {
224 | |         0xc7 | 0xc8 | 0xc9 | 0xd4 | 0xd5 | 0xd6 | 0xd7 | 0xd8 => true,
225 | |         _ => false,
226 | |     }
    | |_____^ help: try this: `matches!(byte, 0xc7 | 0xc8 | 0xc9 | 0xd4 | 0xd5 | 0xd6 | 0xd7 | 0xd8)`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro

warning: `buf.write_u8(marker)?` is being shadowed
   --> src/msgpack/encoder.rs:227:9
    |
227 |         buf.write_u8(marker)?;
    |         ^^^^^^^^^^^^^^^^^^^^^
    |
note: initialization happens here
   --> src/msgpack/encoder.rs:227:9
    |
227 |         buf.write_u8(marker)?;
    |         ^^^^^^^^^^^^^^^^^^^^^
note: previous binding is here
   --> src/msgpack/encoder.rs:225:61
    |
225 | pub fn pack_byte(buf: &mut Option<&mut Buffer>, marker: u8, val: u8) -> Result<usize> {
    |                                                             ^^^
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated

warning: `buf.write_u8(MSGPACK_MARKER_BOOL_TRUE)?` is being shadowed
   --> src/msgpack/encoder.rs:245:13
    |
245 |             buf.write_u8(MSGPACK_MARKER_BOOL_TRUE)?;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
note: initialization happens here
   --> src/msgpack/encoder.rs:245:13
    |
245 |             buf.write_u8(MSGPACK_MARKER_BOOL_TRUE)?;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: previous binding is here
   --> src/msgpack/encoder.rs:242:49
    |
242 | pub fn pack_bool(buf: &mut Option<&mut Buffer>, val: bool) -> Result<usize> {
    |                                                 ^^^
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated

warning: `buf.write_u8(MSGPACK_MARKER_BOOL_FALSE)?` is being shadowed
   --> src/msgpack/encoder.rs:247:13
    |
247 |             buf.write_u8(MSGPACK_MARKER_BOOL_FALSE)?;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
note: initialization happens here
   --> src/msgpack/encoder.rs:247:13
    |
247 |             buf.write_u8(MSGPACK_MARKER_BOOL_FALSE)?;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: previous binding is here
   --> src/msgpack/encoder.rs:245:13
    |
245 |             buf.write_u8(MSGPACK_MARKER_BOOL_TRUE)?;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated

warning: manual `Range::contains` implementation
   --> src/msgpack/encoder.rs:257:16
    |
257 |         val if val >= 16 && val < 2 ^ 16 => pack_i16(buf, 0xde, length as i16),
    |                ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(16..2 ^ 16).contains(&val)`
    |
note: the lint level is defined here
   --> src/lib.rs:25:9
    |
25  | #![warn(clippy::all, clippy::pedantic, clippy::nursery)]
    |         ^^^^^^^^^^^
    = note: `#[warn(clippy::manual_range_contains)]` implied by `#[warn(clippy::all)]`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains

warning: manual `Range::contains` implementation
   --> src/msgpack/encoder.rs:266:16
    |
266 |         val if val >= 16 && val < 2 ^ 16 => pack_i16(buf, 0xdc, length as i16),
    |                ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(16..2 ^ 16).contains(&val)`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains

warning: `buf.write_u8(ParticleType::BLOB as u8)?` is being shadowed
   --> src/msgpack/encoder.rs:286:9
    |
286 |         buf.write_u8(ParticleType::BLOB as u8)?;
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
note: initialization happens here
   --> src/msgpack/encoder.rs:286:9
    |
286 |         buf.write_u8(ParticleType::BLOB as u8)?;
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: previous binding is here
   --> src/msgpack/encoder.rs:281:49
    |
281 | pub fn pack_blob(buf: &mut Option<&mut Buffer>, val: &[u8]) -> Result<usize> {
    |                                                 ^^^
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated

warning: `buf.write_u8(ParticleType::STRING as u8)?` is being shadowed
   --> src/msgpack/encoder.rs:299:9
    |
299 |         buf.write_u8(ParticleType::STRING as u8)?;
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
note: initialization happens here
   --> src/msgpack/encoder.rs:299:9
    |
299 |         buf.write_u8(ParticleType::STRING as u8)?;
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: previous binding is here
   --> src/msgpack/encoder.rs:294:51
    |
294 | pub fn pack_string(buf: &mut Option<&mut Buffer>, val: &str) -> Result<usize> {
    |                                                   ^^^
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated

warning: `buf.write_u8(ParticleType::GEOJSON as u8)?` is being shadowed
   --> src/msgpack/encoder.rs:324:9
    |
324 |         buf.write_u8(ParticleType::GEOJSON as u8)?;
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
note: initialization happens here
   --> src/msgpack/encoder.rs:324:9
    |
324 |         buf.write_u8(ParticleType::GEOJSON as u8)?;
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: previous binding is here
   --> src/msgpack/encoder.rs:319:49
    |
319 | fn pack_geo_json(buf: &mut Option<&mut Buffer>, val: &str) -> Result<usize> {
    |                                                 ^^^
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated

warning: manual `Range::contains` implementation
   --> src/msgpack/encoder.rs:334:16
    |
334 |         val if val >= 0 && val < 2 ^ 7 => pack_half_byte(buf, val as u8),
    |                ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..2 ^ 7).contains(&val)`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains

warning: `buf.write_u8(marker)?` is being shadowed
   --> src/msgpack/encoder.rs:367:9
    |
367 |         buf.write_u8(marker)?;
    |         ^^^^^^^^^^^^^^^^^^^^^
    |
note: initialization happens here
   --> src/msgpack/encoder.rs:367:9
    |
367 |         buf.write_u8(marker)?;
    |         ^^^^^^^^^^^^^^^^^^^^^
note: previous binding is here
   --> src/msgpack/encoder.rs:365:60
    |
365 | pub fn pack_i16(buf: &mut Option<&mut Buffer>, marker: u8, val: i16) -> Result<usize> {
    |                                                            ^^^
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated

warning: `buf.write_u8(marker)?` is being shadowed
   --> src/msgpack/encoder.rs:376:9
    |
376 |         buf.write_u8(marker)?;
    |         ^^^^^^^^^^^^^^^^^^^^^
    |
note: initialization happens here
   --> src/msgpack/encoder.rs:376:9
    |
376 |         buf.write_u8(marker)?;
    |         ^^^^^^^^^^^^^^^^^^^^^
note: previous binding is here
   --> src/msgpack/encoder.rs:374:60
    |
374 | pub fn pack_i32(buf: &mut Option<&mut Buffer>, marker: u8, val: i32) -> Result<usize> {
    |                                                            ^^^
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated

warning: `buf.write_u8(marker)?` is being shadowed
   --> src/msgpack/encoder.rs:385:9
    |
385 |         buf.write_u8(marker)?;
    |         ^^^^^^^^^^^^^^^^^^^^^
    |
note: initialization happens here
   --> src/msgpack/encoder.rs:385:9
    |
385 |         buf.write_u8(marker)?;
    |         ^^^^^^^^^^^^^^^^^^^^^
note: previous binding is here
   --> src/msgpack/encoder.rs:383:60
    |
383 | pub fn pack_i64(buf: &mut Option<&mut Buffer>, marker: u8, val: i64) -> Result<usize> {
    |                                                            ^^^
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated

warning: `buf.write_u8(0xcf)?` is being shadowed
   --> src/msgpack/encoder.rs:398:9
    |
398 |         buf.write_u8(0xcf)?;
    |         ^^^^^^^^^^^^^^^^^^^
    |
note: initialization happens here
   --> src/msgpack/encoder.rs:398:9
    |
398 |         buf.write_u8(0xcf)?;
    |         ^^^^^^^^^^^^^^^^^^^
note: previous binding is here
   --> src/msgpack/encoder.rs:392:48
    |
392 | pub fn pack_u64(buf: &mut Option<&mut Buffer>, val: u64) -> Result<usize> {
    |                                                ^^^
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated

warning: `buf.write_u8(0xca)?` is being shadowed
   --> src/msgpack/encoder.rs:407:9
    |
407 |         buf.write_u8(0xca)?;
    |         ^^^^^^^^^^^^^^^^^^^
    |
note: initialization happens here
   --> src/msgpack/encoder.rs:407:9
    |
407 |         buf.write_u8(0xca)?;
    |         ^^^^^^^^^^^^^^^^^^^
note: previous binding is here
   --> src/msgpack/encoder.rs:405:48
    |
405 | pub fn pack_f32(buf: &mut Option<&mut Buffer>, val: f32) -> Result<usize> {
    |                                                ^^^
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated

warning: `buf.write_u8(0xcb)?` is being shadowed
   --> src/msgpack/encoder.rs:416:9
    |
416 |         buf.write_u8(0xcb)?;
    |         ^^^^^^^^^^^^^^^^^^^
    |
note: initialization happens here
   --> src/msgpack/encoder.rs:416:9
    |
416 |         buf.write_u8(0xcb)?;
    |         ^^^^^^^^^^^^^^^^^^^
note: previous binding is here
   --> src/msgpack/encoder.rs:414:48
    |
414 | pub fn pack_f64(buf: &mut Option<&mut Buffer>, val: f64) -> Result<usize> {
    |                                                ^^^
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated

warning: use Option::map_or instead of an if let/else
   --> src/net/connection.rs:100:9
    |
100 | /         if let Some(idle_dl) = self.idle_deadline {
101 | |             Instant::now() >= idle_dl
102 | |         } else {
103 | |             false
104 | |         }
    | |_________^ help: try: `self.idle_deadline.map_or(false, |idle_dl| Instant::now() >= idle_dl)`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else

warning: using `Result.or_else(|x| Err(y))`, which is more succinctly expressed as `map_err(|x| y)`
  --> src/net/connection_pool.rs:86:9
   |
86 | /         connection.set_timeout(timeout).or_else(|err| {
87 | |             internals.num_conns -= 1;
88 | |             Err(err)
89 | |         })?;
   | |__________^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map
help: try this
   |
86 |         connection.set_timeout(timeout).map_err(|err| {
87 |             internals.num_conns -= 1;
88 |             err
   |

warning: this could be a `const fn`
   --> src/operations/lists.rs:177:1
    |
177 | / pub fn list_order_flag(order: ListOrderType, pad: bool) -> u8 {
178 | |     if let ListOrderType::Ordered = order {
179 | |         return 0xc0;
180 | |     }
...   |
184 | |     0x40
185 | | }
    | |_^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn

warning: this could be a `const fn`
   --> src/operations/maps.rs:195:1
    |
195 | / pub(crate) fn map_write_op(policy: &MapPolicy, multi: bool) -> CdtMapOpType {
196 | |     match policy.write_mode {
197 | |         MapWriteMode::Update => {
198 | |             if multi {
...   |
218 | |     }
219 | | }
    | |_^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn

warning: this could be a `const fn`
   --> src/operations/maps.rs:221:1
    |
221 | / fn map_order_arg(policy: &MapPolicy) -> Option<CdtArgument> {
222 | |     match policy.write_mode {
223 | |         MapWriteMode::UpdateOnly => None,
224 | |         _ => Some(CdtArgument::Byte(policy.order as u8)),
225 | |     }
226 | | }
    | |_^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn

warning: this could be a `const fn`
  --> src/operations/scalar.rs:43:1
   |
43 | / pub fn get_bin(bin_name: &str) -> Operation {
44 | |     Operation {
45 | |         op: OperationType::Read,
46 | |         ctx: DEFAULT_CTX,
...  |
49 | |     }
50 | | }
   | |_^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn

warning: this could be a `const fn`
  --> src/operations/scalar.rs:53:1
   |
53 | / pub fn put<'a>(bin: &'a Bin) -> Operation<'a> {
54 | |     Operation {
55 | |         op: OperationType::Write,
56 | |         ctx: DEFAULT_CTX,
...  |
59 | |     }
60 | | }
   | |_^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn

warning: this could be a `const fn`
  --> src/operations/scalar.rs:63:1
   |
63 | / pub fn append<'a>(bin: &'a Bin) -> Operation<'a> {
64 | |     Operation {
65 | |         op: OperationType::Append,
66 | |         ctx: DEFAULT_CTX,
...  |
69 | |     }
70 | | }
   | |_^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn

warning: this could be a `const fn`
  --> src/operations/scalar.rs:73:1
   |
73 | / pub fn prepend<'a>(bin: &'a Bin) -> Operation<'a> {
74 | |     Operation {
75 | |         op: OperationType::Prepend,
76 | |         ctx: DEFAULT_CTX,
...  |
79 | |     }
80 | | }
   | |_^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn

warning: this could be a `const fn`
  --> src/operations/scalar.rs:83:1
   |
83 | / pub fn add<'a>(bin: &'a Bin) -> Operation<'a> {
84 | |     Operation {
85 | |         op: OperationType::Incr,
86 | |         ctx: DEFAULT_CTX,
...  |
89 | |     }
90 | | }
   | |_^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn

warning: field assignment outside of initializer for an instance created with Default::default()
  --> src/policy/write_policy.rs:75:9
   |
75 |         wp.generation = gen;
   |         ^^^^^^^^^^^^^^^^^^^^
   |
note: the lint level is defined here
  --> src/lib.rs:25:9
   |
25 | #![warn(clippy::all, clippy::pedantic, clippy::nursery)]
   |         ^^^^^^^^^^^
   = note: `#[warn(clippy::field_reassign_with_default)]` implied by `#[warn(clippy::all)]`
note: consider initializing the variable with `policy::write_policy::WritePolicy { generation: gen, expiration: exp, ..Default::default() }` and removing relevant reassignments
  --> src/policy/write_policy.rs:74:9
   |
74 |         let mut wp = WritePolicy::default();
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default

warning: wildcard match will miss any future added variants
  --> src/record.rs:77:21
   |
77 |                     _ => Some(Duration::new(1u64, 0)),
   |                     ^ help: try this: `std::prelude::v1::Err(..)`
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wildcard_for_single_variants

warning: this could be a `const fn`
   --> src/result_code.rs:216:5
    |
216 | /     pub fn from_u8(n: u8) -> ResultCode {
217 | |         match n {
218 | |             0 => ResultCode::Ok,
219 | |             1 => ResultCode::ServerError,
...   |
281 | |         }
282 | |     }
    | |_____^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn

warning: 76 warnings emitted

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions