File tree Expand file tree Collapse file tree 1 file changed +13
-13
lines changed
Expand file tree Collapse file tree 1 file changed +13
-13
lines changed Original file line number Diff line number Diff line change 1+ use std:: iter;
12use std:: ffi:: CString ;
23
34//#[macro_use]
@@ -10,28 +11,27 @@ fn hello_mul(_: &Context, args: Vec<String>) -> RedisResult {
1011 return Err ( RedisError :: WrongArity ) ;
1112 }
1213
13- let maybe_nums: Vec < _ > = args
14- . into_iter ( )
15- . skip ( 1 ) // The command itself
16- . map ( parse_integer)
17- . collect ( ) ;
18-
1914 let mut nums = vec ! [ ] ;
20- for n in maybe_nums {
21- nums. push ( n?) ;
15+
16+ for arg in args. into_iter ( ) . skip ( 1 ) {
17+ nums. push ( parse_integer ( & arg) ?) ;
2218 }
2319
24- nums. push ( nums . iter ( ) . product ( ) ) ;
20+ let product = nums. iter ( ) . product ( ) ;
2521
26- return Ok ( RedisValue :: Array ( nums
22+ let results = nums
2723 . into_iter ( )
28- . map ( RedisValue :: Integer )
29- . collect ( ) ) ) ;
24+ . chain ( iter:: once ( product) ) ;
25+
26+ return Ok ( RedisValue :: Array (
27+ results
28+ . map ( RedisValue :: Integer )
29+ . collect ( ) ) ) ;
3030}
3131
3232//////////////////////////////////////////////////////
3333
34- fn parse_integer ( arg : String ) -> Result < i64 , RedisError > {
34+ fn parse_integer ( arg : & str ) -> Result < i64 , RedisError > {
3535 arg. parse :: < i64 > ( )
3636 . map_err ( |_| RedisError :: String ( format ! ( "Couldn't parse as integer: {}" , arg) ) )
3737}
You can’t perform that action at this time.
0 commit comments