1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
use std::os::raw::c_int; #[macro_use] extern crate bitflags; #[macro_use] extern crate enum_primitive_derive; use redis_module::raw as rawmod; mod document; mod index; pub mod raw; pub use document::Document; pub use index::{Index, TagOptions}; bitflags! { pub struct FieldType: u32 { const FULLTEXT = raw::RSFLDTYPE_FULLTEXT; const NUMERIC = raw::RSFLDTYPE_NUMERIC; const GEO = raw::RSFLDTYPE_GEO; const TAG = raw::RSFLDTYPE_TAG; } } pub fn get_c_api_version() -> i32 { unsafe { raw::RediSearch_GetCApiVersion() } } pub extern "C" fn init(raw_ctx: *mut rawmod::RedisModuleCtx) -> c_int { let ctx = redis_module::Context::new(raw_ctx); ctx.log_debug("Initializing RediSearch..."); let result = unsafe { raw::RediSearch_Init(raw_ctx, raw::REDISEARCH_INIT_LIBRARY as c_int) }; if result == rawmod::REDISMODULE_OK as c_int { ctx.log_debug("RediSearch initialized successfully."); } else { ctx.log_debug("Failed initializing RediSearch."); } result }