Skip to content

Commit c07f561

Browse files
committed
More fixes
1 parent 54013b6 commit c07f561

4 files changed

Lines changed: 23 additions & 21 deletions

File tree

fstwrapper/src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
extern crate libc;
55
extern crate fst;
6+
extern crate fst_regex;
7+
extern crate fst_levenshtein;
68

79

810
/// Get an immutable reference from a raw pointer

fstwrapper/src/map.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
extern crate libc;
2-
extern crate fst;
3-
extern crate fst_levenshtein;
4-
extern crate fst_regex;
52

63
use std::error::Error;
74
use std::fs::File;
@@ -10,6 +7,8 @@ use std::ptr;
107
use fst::{IntoStreamer, Streamer, Map, MapBuilder};
118
use fst::map;
129
use fst::raw;
10+
use fst_levenshtein::Levenshtein;
11+
use fst_regex::Regex;
1312

1413
use util::{Context, str_to_cstr, cstr_to_str, to_raw_ptr};
1514

@@ -34,8 +33,8 @@ pub struct MapOpItem {
3433

3534
pub type FileMapBuilder = MapBuilder<&'static mut io::BufWriter<File>>;
3635
pub type MemMapBuilder = MapBuilder<Vec<u8>>;
37-
pub type MapLevStream = map::Stream<'static, &'static fst_levenshtein::Levenshtein>;
38-
pub type MapRegexStream = map::Stream<'static, &'static fst_regex::Regex>;
36+
pub type MapLevStream = map::Stream<'static, &'static Levenshtein>;
37+
pub type MapRegexStream = map::Stream<'static, &'static Regex>;
3938

4039

4140
#[no_mangle]
@@ -167,7 +166,7 @@ pub extern "C" fn fst_mapvalues_next(ctx: *mut Context, ptr: *mut map::Values) -
167166

168167
#[no_mangle]
169168
pub extern "C" fn fst_map_levsearch(map_ptr: *mut Map,
170-
lev_ptr: *mut fst_levenshtein::Levenshtein)
169+
lev_ptr: *mut Levenshtein)
171170
-> *mut MapLevStream {
172171
let map = mutref_from_ptr!(map_ptr);
173172
let lev = ref_from_ptr!(lev_ptr);
@@ -178,7 +177,7 @@ map_make_next_fn!(fst_map_levstream_next, *mut MapLevStream);
178177

179178

180179
#[no_mangle]
181-
pub extern "C" fn fst_map_regexsearch(map_ptr: *mut Map, regex_ptr: *mut fst_regex::Regex)
180+
pub extern "C" fn fst_map_regexsearch(map_ptr: *mut Map, regex_ptr: *mut Regex)
182181
-> *mut MapRegexStream {
183182
let map = mutref_from_ptr!(map_ptr);
184183
let regex = ref_from_ptr!(regex_ptr);

fstwrapper/src/set.rs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,21 @@
11
extern crate libc;
2-
extern crate fst;
3-
extern crate fst_levenshtein;
4-
extern crate fst_regex;
5-
62

73
use std::error::Error;
84
use std::fs::File;
95
use std::io;
106
use std::ptr;
117
use fst::{IntoStreamer, Streamer, Set, SetBuilder};
128
use fst::set;
9+
use fst_levenshtein::Levenshtein;
10+
use fst_regex::Regex;
1311

1412
use util::{Context, cstr_to_str, to_raw_ptr};
1513

1614

1715
pub type FileSetBuilder = SetBuilder<&'static mut io::BufWriter<File>>;
1816
pub type MemSetBuilder = SetBuilder<Vec<u8>>;
19-
pub type SetLevStream = set::Stream<'static, &'static fst_levenshtein::Levenshtein>;
20-
pub type SetRegexStream = set::Stream<'static, &'static fst_regex::Regex>;
17+
pub type SetLevStream = set::Stream<'static, &'static Levenshtein>;
18+
pub type SetRegexStream = set::Stream<'static, &'static Regex>;
2119

2220

2321
#[no_mangle]
@@ -121,7 +119,7 @@ pub extern "C" fn fst_set_issuperset(self_ptr: *mut Set, oth_ptr: *mut Set) -> b
121119

122120
#[no_mangle]
123121
pub extern "C" fn fst_set_levsearch(set_ptr: *mut Set,
124-
lev_ptr: *mut fst_levenshtein::Levenshtein)
122+
lev_ptr: *mut Levenshtein)
125123
-> *mut SetLevStream {
126124
let set = mutref_from_ptr!(set_ptr);
127125
let lev = ref_from_ptr!(lev_ptr);
@@ -131,7 +129,7 @@ make_free_fn!(fst_set_levstream_free, *mut SetLevStream);
131129
set_make_next_fn!(fst_set_levstream_next, *mut SetLevStream);
132130

133131
#[no_mangle]
134-
pub extern "C" fn fst_set_regexsearch(set_ptr: *mut Set, regex_ptr: *mut fst_regex::Regex)
132+
pub extern "C" fn fst_set_regexsearch(set_ptr: *mut Set, regex_ptr: *mut Regex)
135133
-> *mut SetRegexStream {
136134
let set = mutref_from_ptr!(set_ptr);
137135
let regex = ref_from_ptr!(regex_ptr);

fstwrapper/src/util.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,12 @@ use std::fs::File;
99
use std::intrinsics;
1010
use std::io;
1111
use std::ptr;
12+
use fst_regex::Regex;
13+
use fst_levenshtein::Levenshtein;
1214

1315

1416
/// Exposes information about errors over the ABI
17+
#[repr(C)]
1518
pub struct Context {
1619
pub has_error: bool,
1720
pub error_type: *mut libc::c_char,
@@ -90,18 +93,18 @@ make_free_fn!(fst_bufwriter_free, *mut io::BufWriter<File>);
9093
pub extern "C" fn fst_levenshtein_new(ctx: *mut Context,
9194
c_key: *mut libc::c_char,
9295
max_dist: libc::uint32_t)
93-
-> *mut fst_levenshtein::Levenshtein {
96+
-> *mut Levenshtein {
9497
let key = cstr_to_str(c_key);
9598
let lev = with_context!(ctx, ptr::null_mut(),
96-
fst_levenshtein::Levenshtein::new(key, max_dist));
99+
Levenshtein::new(key, max_dist));
97100
to_raw_ptr(lev)
98101
}
99-
make_free_fn!(fst_levenshtein_free, *mut fst_levenshtein::Levenshtein);
102+
make_free_fn!(fst_levenshtein_free, *mut Levenshtein);
100103

101104
#[no_mangle]
102-
pub extern "C" fn fst_regex_new(ctx: *mut Context, c_pat: *mut libc::c_char) -> *mut fst_regex::Regex {
105+
pub extern "C" fn fst_regex_new(ctx: *mut Context, c_pat: *mut libc::c_char) -> *mut Regex {
103106
let pat = cstr_to_str(c_pat);
104-
let re = with_context!(ctx, ptr::null_mut(), fst_regex::Regex::new(pat));
107+
let re = with_context!(ctx, ptr::null_mut(), Regex::new(pat));
105108
to_raw_ptr(re)
106109
}
107-
make_free_fn!(fst_regex_free, *mut fst_regex::Regex);
110+
make_free_fn!(fst_regex_free, *mut Regex);

0 commit comments

Comments
 (0)