1
- use std:: {
2
- cell:: RefCell ,
3
- sync:: { Arc , Mutex } ,
4
- } ;
1
+ use std:: { cell:: RefCell , sync:: Arc } ;
5
2
6
3
use cirru_edn:: { Edn , EdnAnyRef , EdnListView } ;
7
- use lazy_static:: lazy_static;
8
4
use regex:: Regex ;
9
5
10
- lazy_static ! {
11
- static ref PATTERNS : Mutex <Vec <EdnAnyRef >> = Mutex :: from( vec![ ] ) ;
12
- }
13
-
14
6
#[ no_mangle]
15
7
pub fn abi_version ( ) -> String {
16
8
String :: from ( "0.0.8" )
@@ -23,11 +15,8 @@ pub fn re_pattern(args: Vec<Edn>) -> Result<Edn, String> {
23
15
Edn :: Str ( s) => match Regex :: new ( s) {
24
16
Ok ( pattern) => {
25
17
let p = Arc :: from ( RefCell :: new ( pattern) ) ;
26
- // push to PATTERNS
27
- let v = EdnAnyRef ( p) ;
28
- let mut patterns = PATTERNS . lock ( ) . unwrap ( ) ;
29
- patterns. push ( v. to_owned ( ) ) ;
30
- Ok ( Edn :: AnyRef ( v) )
18
+
19
+ Ok ( Edn :: AnyRef ( EdnAnyRef ( p) ) )
31
20
}
32
21
Err ( e) => Err ( format ! ( "re-pattern failed, {}" , e) ) ,
33
22
} ,
@@ -38,38 +27,6 @@ pub fn re_pattern(args: Vec<Edn>) -> Result<Edn, String> {
38
27
}
39
28
}
40
29
41
- /// re_drop drops pattern from global PATTERNS
42
- #[ no_mangle]
43
- pub fn re_drop ( args : Vec < Edn > ) -> Result < Edn , String > {
44
- if args. len ( ) == 1 {
45
- match & args[ 0 ] {
46
- Edn :: AnyRef ( p) => {
47
- let mut patterns = PATTERNS . lock ( ) . unwrap ( ) ;
48
- let mut i = 0 ;
49
- let mut found = false ;
50
- println ! ( "patterns size {}" , patterns. len( ) ) ;
51
- for v in patterns. iter ( ) {
52
- if v == p {
53
- found = true ;
54
- break ;
55
- }
56
- i += 1 ;
57
- }
58
- println ! ( "re-drop found {} at {}\n " , found, i) ;
59
- if found {
60
- patterns. remove ( i) ;
61
- Ok ( Edn :: from ( true ) )
62
- } else {
63
- Ok ( Edn :: from ( false ) )
64
- }
65
- }
66
- _ => Err ( format ! ( "re-drop expect 1 pattern, got {:?}" , args) ) ,
67
- }
68
- } else {
69
- Err ( format ! ( "re-drop expect 1 pattern, got {:?}" , args) )
70
- }
71
- }
72
-
73
30
#[ no_mangle]
74
31
pub fn re_matches ( args : Vec < Edn > ) -> Result < Edn , String > {
75
32
if args. len ( ) == 2 {
0 commit comments