@@ -12,12 +12,12 @@ use router::{Router, Match};
12
12
use conduit:: { Method , Handler , Request , Response } ;
13
13
14
14
pub struct RouteBuilder {
15
- routers : HashMap < Method , Router < Box < Handler + ' static + Share > > >
15
+ routers : HashMap < Method , Router < Box < Handler + Send + Share > > >
16
16
}
17
17
18
18
macro_rules! method_map(
19
19
( $method: ident => $variant: ty) => (
20
- pub fn $method<' a, H : ' static + Handler >( & ' a mut self , pattern: & str , handler: H )
20
+ pub fn $method<' a, H : Handler >( & ' a mut self , pattern: & str , handler: H )
21
21
-> & ' a mut RouteBuilder
22
22
{
23
23
self . map( conduit:: $variant, pattern, handler)
@@ -31,58 +31,48 @@ impl RouteBuilder {
31
31
}
32
32
33
33
pub fn recognize < ' a > ( & ' a self , method : & Method , path : & str )
34
- -> Result < Match < & ' a Box < Handler + ' static + Share > > , String >
34
+ -> Result < Match < & ' a Box < Handler + Send + Share > > , String >
35
35
{
36
36
match self . routers . find ( method) {
37
37
None => Err ( format ! ( "No router found for {}" , method) ) ,
38
38
Some ( router) => router. recognize ( path)
39
39
}
40
40
}
41
41
42
- pub fn map < ' a , H : ' static + Handler + Share > ( & ' a mut self ,
43
- method : Method ,
44
- pattern : & str ,
45
- handler : H )
46
- -> & ' a mut RouteBuilder
47
- {
42
+ pub fn map < ' a , H : Handler > ( & ' a mut self , method : Method , pattern : & str ,
43
+ handler : H ) -> & ' a mut RouteBuilder {
48
44
{
49
45
let router = self . routers . find_or_insert_with ( method, |_| Router :: new ( ) ) ;
50
- router. add ( pattern, box handler as Box < Handler + ' static + Share > ) ;
46
+ router. add ( pattern, box handler as Box < Handler + Send + Share > ) ;
51
47
}
52
48
self
53
49
}
54
50
55
- pub fn get < ' a , H : ' static + Handler + Share > ( & ' a mut self , pattern : & str ,
56
- handler : H )
57
- -> & ' a mut RouteBuilder
58
- {
51
+ pub fn get < ' a , H : Handler > ( & ' a mut self , pattern : & str , handler : H )
52
+ -> & ' a mut RouteBuilder {
59
53
self . map ( conduit:: Get , pattern, handler)
60
54
}
61
55
62
- pub fn post < ' a , H : ' static + Handler + Share > ( & ' a mut self , pattern : & str ,
63
- handler : H )
64
- -> & ' a mut RouteBuilder
56
+ pub fn post < ' a , H : Handler > ( & ' a mut self , pattern : & str , handler : H )
57
+ -> & ' a mut RouteBuilder
65
58
{
66
59
self . map ( conduit:: Post , pattern, handler)
67
60
}
68
61
69
- pub fn put < ' a , H : ' static + Handler + Share > ( & ' a mut self , pattern : & str ,
70
- handler : H )
71
- -> & ' a mut RouteBuilder
62
+ pub fn put < ' a , H : Handler > ( & ' a mut self , pattern : & str , handler : H )
63
+ -> & ' a mut RouteBuilder
72
64
{
73
65
self . map ( conduit:: Put , pattern, handler)
74
66
}
75
67
76
- pub fn delete < ' a , H : ' static + Handler + Share > ( & ' a mut self , pattern : & str ,
77
- handler : H )
78
- -> & ' a mut RouteBuilder
68
+ pub fn delete < ' a , H : Handler > ( & ' a mut self , pattern : & str , handler : H )
69
+ -> & ' a mut RouteBuilder
79
70
{
80
71
self . map ( conduit:: Delete , pattern, handler)
81
72
}
82
73
83
- pub fn head < ' a , H : ' static + Handler + Share > ( & ' a mut self , pattern : & str ,
84
- handler : H )
85
- -> & ' a mut RouteBuilder
74
+ pub fn head < ' a , H : Handler > ( & ' a mut self , pattern : & str , handler : H )
75
+ -> & ' a mut RouteBuilder
86
76
{
87
77
self . map ( conduit:: Head , pattern, handler)
88
78
}
0 commit comments