@@ -256,20 +256,11 @@ macro_rules! redis_json_module_export_shared_api {
256
256
ctx: * mut rawmod:: RedisModuleCtx ,
257
257
key_str: * mut rawmod:: RedisModuleString ,
258
258
) -> * mut c_void {
259
- $pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ;
260
-
261
- let m = $get_manager_expr;
262
- match m {
263
- Some ( mngr) => json_api_open_key_internal( mngr, ctx, RedisString :: new( ctx, key_str) )
264
- as * mut c_void,
265
- None => json_api_open_key_internal(
266
- manager:: RedisJsonKeyManager {
267
- phantom: PhantomData ,
268
- } ,
269
- ctx,
270
- RedisString :: new( ctx, key_str) ,
271
- ) as * mut c_void,
272
- }
259
+ run_on_manager!(
260
+ pre_command: ||$pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ,
261
+ get_mngr: $get_manager_expr,
262
+ run: |mngr|{ json_api_open_key_internal( mngr, ctx, RedisString :: new( ctx, key_str) ) as * mut c_void} ,
263
+ )
273
264
}
274
265
275
266
#[ no_mangle]
@@ -278,187 +269,102 @@ macro_rules! redis_json_module_export_shared_api {
278
269
ctx: * mut rawmod:: RedisModuleCtx ,
279
270
path: * const c_char,
280
271
) -> * mut c_void {
281
- $pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ;
282
-
283
272
let key = unsafe { CStr :: from_ptr( path) . to_str( ) . unwrap( ) } ;
284
- let m = $get_manager_expr;
285
- match m {
286
- Some ( mngr) => json_api_open_key_internal( mngr, ctx, RedisString :: create( ctx, key) )
287
- as * mut c_void,
288
- None => json_api_open_key_internal(
289
- manager:: RedisJsonKeyManager {
290
- phantom: PhantomData ,
291
- } ,
292
- ctx,
293
- RedisString :: create( ctx, key) ,
294
- ) as * mut c_void,
295
- }
273
+ run_on_manager!(
274
+ pre_command: ||$pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ,
275
+ get_mngr: $get_manager_expr,
276
+ run: |mngr|{ json_api_open_key_internal( mngr, ctx, RedisString :: create( ctx, key) ) as * mut c_void} ,
277
+ )
296
278
}
297
279
298
280
#[ no_mangle]
299
281
pub extern "C" fn JSONAPI_get ( key: * const c_void, path: * const c_char) -> * const c_void {
300
- $pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ;
301
-
302
- let m = $get_manager_expr;
303
- match m {
304
- Some ( mngr) => json_api_get( mngr, key, path) ,
305
- None => json_api_get(
306
- manager:: RedisJsonKeyManager {
307
- phantom: PhantomData ,
308
- } ,
309
- key,
310
- path,
311
- ) ,
312
- }
282
+ run_on_manager!(
283
+ pre_command: ||$pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ,
284
+ get_mngr: $get_manager_expr,
285
+ run: |mngr|{ json_api_get( mngr, key, path) } ,
286
+ )
313
287
}
314
288
315
289
#[ no_mangle]
316
290
pub extern "C" fn JSONAPI_next ( iter: * mut c_void) -> * const c_void {
317
- $pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ;
318
-
319
- let m = $get_manager_expr;
320
- match m {
321
- Some ( mngr) => json_api_next( mngr, iter) ,
322
- None => json_api_next(
323
- manager:: RedisJsonKeyManager {
324
- phantom: PhantomData ,
325
- } ,
326
- iter,
327
- ) ,
328
- }
291
+ run_on_manager!(
292
+ pre_command: ||$pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ,
293
+ get_mngr: $get_manager_expr,
294
+ run: |mngr|{ json_api_next( mngr, iter) } ,
295
+ )
329
296
}
330
297
331
298
#[ no_mangle]
332
299
pub extern "C" fn JSONAPI_len ( iter: * const c_void) -> size_t {
333
- $pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ;
334
-
335
- let m = $get_manager_expr;
336
- match m {
337
- Some ( mngr) => json_api_len( mngr, iter) ,
338
- None => json_api_len(
339
- manager:: RedisJsonKeyManager {
340
- phantom: PhantomData ,
341
- } ,
342
- iter,
343
- ) ,
344
- }
300
+ run_on_manager!(
301
+ pre_command: ||$pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ,
302
+ get_mngr: $get_manager_expr,
303
+ run: |mngr|{ json_api_len( mngr, iter) } ,
304
+ )
345
305
}
346
306
347
307
#[ no_mangle]
348
308
pub extern "C" fn JSONAPI_freeIter ( iter: * mut c_void) {
349
- $pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ;
350
-
351
- let m = $get_manager_expr;
352
- match m {
353
- Some ( mngr) => json_api_free_iter( mngr, iter) ,
354
- None => json_api_free_iter(
355
- manager:: RedisJsonKeyManager {
356
- phantom: PhantomData ,
357
- } ,
358
- iter,
359
- ) ,
360
- }
309
+ run_on_manager!(
310
+ pre_command: ||$pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ,
311
+ get_mngr: $get_manager_expr,
312
+ run: |mngr|{ json_api_free_iter( mngr, iter) } ,
313
+ )
361
314
}
362
315
363
316
#[ no_mangle]
364
317
pub extern "C" fn JSONAPI_getAt ( json: * const c_void, index: size_t) -> * const c_void {
365
- $pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ;
366
-
367
- let m = $get_manager_expr;
368
- match m {
369
- Some ( mngr) => json_api_get_at( mngr, json, index) ,
370
- None => json_api_get_at(
371
- manager:: RedisJsonKeyManager {
372
- phantom: PhantomData ,
373
- } ,
374
- json,
375
- index,
376
- ) ,
377
- }
318
+ run_on_manager!(
319
+ pre_command: ||$pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ,
320
+ get_mngr: $get_manager_expr,
321
+ run: |mngr|{ json_api_get_at( mngr, json, index) } ,
322
+ )
378
323
}
379
324
380
325
#[ no_mangle]
381
326
pub extern "C" fn JSONAPI_getLen ( json: * const c_void, count: * mut size_t) -> c_int {
382
- $pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ;
383
-
384
- let m = $get_manager_expr;
385
- match m {
386
- Some ( mngr) => json_api_get_len( mngr, json, count) ,
387
- None => json_api_get_len(
388
- manager:: RedisJsonKeyManager {
389
- phantom: PhantomData ,
390
- } ,
391
- json,
392
- count,
393
- ) ,
394
- }
327
+ run_on_manager!(
328
+ pre_command: ||$pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ,
329
+ get_mngr: $get_manager_expr,
330
+ run: |mngr|{ json_api_get_len( mngr, json, count) } ,
331
+ )
395
332
}
396
333
397
334
#[ no_mangle]
398
335
pub extern "C" fn JSONAPI_getType ( json: * const c_void) -> c_int {
399
- $pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ;
400
-
401
- let m = $get_manager_expr;
402
- match m {
403
- Some ( mngr) => json_api_get_type( mngr, json) ,
404
- None => json_api_get_type(
405
- manager:: RedisJsonKeyManager {
406
- phantom: PhantomData ,
407
- } ,
408
- json,
409
- ) ,
410
- }
336
+ run_on_manager!(
337
+ pre_command: ||$pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ,
338
+ get_mngr: $get_manager_expr,
339
+ run: |mngr|{ json_api_get_type( mngr, json) } ,
340
+ )
411
341
}
412
342
413
343
#[ no_mangle]
414
344
pub extern "C" fn JSONAPI_getInt ( json: * const c_void, val: * mut c_longlong) -> c_int {
415
- $pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ;
416
-
417
- let m = $get_manager_expr;
418
- match m {
419
- Some ( mngr) => json_api_get_int( mngr, json, val) ,
420
- None => json_api_get_int(
421
- manager:: RedisJsonKeyManager {
422
- phantom: PhantomData ,
423
- } ,
424
- json,
425
- val,
426
- ) ,
427
- }
345
+ run_on_manager!(
346
+ pre_command: ||$pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ,
347
+ get_mngr: $get_manager_expr,
348
+ run: |mngr|{ json_api_get_int( mngr, json, val) } ,
349
+ )
428
350
}
429
351
430
352
#[ no_mangle]
431
353
pub extern "C" fn JSONAPI_getDouble ( json: * const c_void, val: * mut c_double) -> c_int {
432
- $pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ;
433
-
434
- let m = $get_manager_expr;
435
- match m {
436
- Some ( mngr) => json_api_get_double( mngr, json, val) ,
437
- None => json_api_get_double(
438
- manager:: RedisJsonKeyManager {
439
- phantom: PhantomData ,
440
- } ,
441
- json,
442
- val,
443
- ) ,
444
- }
354
+ run_on_manager!(
355
+ pre_command: ||$pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ,
356
+ get_mngr: $get_manager_expr,
357
+ run: |mngr|{ json_api_get_double( mngr, json, val) } ,
358
+ )
445
359
}
446
360
447
361
#[ no_mangle]
448
362
pub extern "C" fn JSONAPI_getBoolean ( json: * const c_void, val: * mut c_int) -> c_int {
449
- $pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ;
450
-
451
- let m = $get_manager_expr;
452
- match m {
453
- Some ( mngr) => json_api_get_boolean( mngr, json, val) ,
454
- None => json_api_get_boolean(
455
- manager:: RedisJsonKeyManager {
456
- phantom: PhantomData ,
457
- } ,
458
- json,
459
- val,
460
- ) ,
461
- }
363
+ run_on_manager!(
364
+ pre_command: ||$pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ,
365
+ get_mngr: $get_manager_expr,
366
+ run: |mngr|{ json_api_get_boolean( mngr, json, val) } ,
367
+ )
462
368
}
463
369
464
370
#[ no_mangle]
@@ -467,20 +373,11 @@ macro_rules! redis_json_module_export_shared_api {
467
373
str : * mut * const c_char,
468
374
len: * mut size_t,
469
375
) -> c_int {
470
- $pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ;
471
-
472
- let m = $get_manager_expr;
473
- match m {
474
- Some ( mngr) => json_api_get_string( mngr, json, str , len) ,
475
- None => json_api_get_string(
476
- manager:: RedisJsonKeyManager {
477
- phantom: PhantomData ,
478
- } ,
479
- json,
480
- str ,
481
- len,
482
- ) ,
483
- }
376
+ run_on_manager!(
377
+ pre_command: ||$pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ,
378
+ get_mngr: $get_manager_expr,
379
+ run: |mngr|{ json_api_get_string( mngr, json, str , len) } ,
380
+ )
484
381
}
485
382
486
383
#[ no_mangle]
@@ -489,36 +386,20 @@ macro_rules! redis_json_module_export_shared_api {
489
386
ctx: * mut rawmod:: RedisModuleCtx ,
490
387
str : * mut * mut rawmod:: RedisModuleString ,
491
388
) -> c_int {
492
- $pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ;
493
-
494
- let m = $get_manager_expr;
495
- match m {
496
- Some ( mngr) => json_api_get_json( mngr, json, ctx, str ) ,
497
- None => json_api_get_json(
498
- manager:: RedisJsonKeyManager {
499
- phantom: PhantomData ,
500
- } ,
501
- json,
502
- ctx,
503
- str ,
504
- ) ,
505
- }
389
+ run_on_manager!(
390
+ pre_command: ||$pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ,
391
+ get_mngr: $get_manager_expr,
392
+ run: |mngr|{ json_api_get_json( mngr, json, ctx, str ) } ,
393
+ )
506
394
}
507
395
508
396
#[ no_mangle]
509
397
pub extern "C" fn JSONAPI_isJSON ( key: * mut rawmod:: RedisModuleKey ) -> c_int {
510
- $pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ;
511
-
512
- let m = $get_manager_expr;
513
- match m {
514
- Some ( mngr) => json_api_is_json( mngr, key) ,
515
- None => json_api_is_json(
516
- manager:: RedisJsonKeyManager {
517
- phantom: PhantomData ,
518
- } ,
519
- key,
520
- ) ,
521
- }
398
+ run_on_manager!(
399
+ pre_command: ||$pre_command_function_expr( & get_llapi_ctx( ) , & Vec :: new( ) ) ,
400
+ get_mngr: $get_manager_expr,
401
+ run: |mngr|{ json_api_is_json( mngr, key) } ,
402
+ )
522
403
}
523
404
524
405
static REDISJSON_GETAPI : & str = concat!( "RedisJSON_V1" , "\0 " ) ;
0 commit comments