File tree 6 files changed +63
-22
lines changed
6 files changed +63
-22
lines changed Original file line number Diff line number Diff line change @@ -90,14 +90,20 @@ impl DynamicItems {
90
90
path: P
91
91
) -> Result <Self , :: libloading:: Error >
92
92
where P : AsRef <:: std:: ffi:: OsStr > {
93
- let __library = :: libloading:: Library :: new( path) ?;
93
+ let library = :: libloading:: Library :: new( path) ?;
94
+ Ok ( Self :: from_library( library) )
95
+ }
96
+
97
+ pub unsafe fn from_library<L >(
98
+ library: L
99
+ ) -> Self
100
+ where L : Into <:: libloading:: Library > {
101
+ let __library = library. into( ) ;
94
102
#( #constructor_inits ) *
95
- Ok (
96
- #lib_ident {
97
- __library,
98
- #( #init_fields ) , *
99
- }
100
- )
103
+ #lib_ident {
104
+ __library,
105
+ #( #init_fields ) , *
106
+ }
101
107
}
102
108
103
109
#( #struct_implementation ) *
Original file line number Diff line number Diff line change @@ -31,16 +31,23 @@ impl TestLib {
31
31
where
32
32
P : AsRef < :: std:: ffi:: OsStr > ,
33
33
{
34
- let __library = :: libloading:: Library :: new ( path) ?;
34
+ let library = :: libloading:: Library :: new ( path) ?;
35
+ Ok ( Self :: from_library ( library) )
36
+ }
37
+ pub unsafe fn from_library < L > ( library : L ) -> Self
38
+ where
39
+ L : Into < :: libloading:: Library > ,
40
+ {
41
+ let __library = library. into ( ) ;
35
42
let foo = __library. get ( b"foo\0 " ) . map ( |sym| * sym) ;
36
43
let bar = __library. get ( b"bar\0 " ) . map ( |sym| * sym) ;
37
44
let baz = __library. get ( b"baz\0 " ) . map ( |sym| * sym) ;
38
- Ok ( TestLib {
45
+ TestLib {
39
46
__library,
40
47
foo,
41
48
bar,
42
49
baz,
43
- } )
50
+ }
44
51
}
45
52
pub unsafe fn foo (
46
53
& self ,
Original file line number Diff line number Diff line change @@ -19,14 +19,21 @@ impl TestLib {
19
19
where
20
20
P : AsRef < :: std:: ffi:: OsStr > ,
21
21
{
22
- let __library = :: libloading:: Library :: new ( path) ?;
22
+ let library = :: libloading:: Library :: new ( path) ?;
23
+ Ok ( Self :: from_library ( library) )
24
+ }
25
+ pub unsafe fn from_library < L > ( library : L ) -> Self
26
+ where
27
+ L : Into < :: libloading:: Library > ,
28
+ {
29
+ let __library = library. into ( ) ;
23
30
let foo = __library. get ( b"foo\0 " ) . map ( |sym| * sym) ;
24
31
let foo1 = __library. get ( b"foo1\0 " ) . map ( |sym| * sym) ;
25
- Ok ( TestLib {
32
+ TestLib {
26
33
__library,
27
34
foo,
28
35
foo1,
29
- } )
36
+ }
30
37
}
31
38
pub unsafe fn foo (
32
39
& self ,
Original file line number Diff line number Diff line change @@ -33,16 +33,23 @@ impl TestLib {
33
33
where
34
34
P : AsRef < :: std:: ffi:: OsStr > ,
35
35
{
36
- let __library = :: libloading:: Library :: new ( path) ?;
36
+ let library = :: libloading:: Library :: new ( path) ?;
37
+ Ok ( Self :: from_library ( library) )
38
+ }
39
+ pub unsafe fn from_library < L > ( library : L ) -> Self
40
+ where
41
+ L : Into < :: libloading:: Library > ,
42
+ {
43
+ let __library = library. into ( ) ;
37
44
let foo = __library. get ( b"foo\0 " ) . map ( |sym| * sym) ;
38
45
let baz = __library. get ( b"baz\0 " ) . map ( |sym| * sym) ;
39
46
let bazz = __library. get ( b"bazz\0 " ) . map ( |sym| * sym) ;
40
- Ok ( TestLib {
47
+ TestLib {
41
48
__library,
42
49
foo,
43
50
baz,
44
51
bazz,
45
- } )
52
+ }
46
53
}
47
54
pub unsafe fn foo (
48
55
& self ,
Original file line number Diff line number Diff line change @@ -77,14 +77,21 @@ impl TestLib {
77
77
where
78
78
P : AsRef < :: std:: ffi:: OsStr > ,
79
79
{
80
- let __library = :: libloading:: Library :: new ( path) ?;
80
+ let library = :: libloading:: Library :: new ( path) ?;
81
+ Ok ( Self :: from_library ( library) )
82
+ }
83
+ pub unsafe fn from_library < L > ( library : L ) -> Self
84
+ where
85
+ L : Into < :: libloading:: Library > ,
86
+ {
87
+ let __library = library. into ( ) ;
81
88
let foo = __library. get ( b"foo\0 " ) . map ( |sym| * sym) ;
82
89
let bar = __library. get ( b"bar\0 " ) . map ( |sym| * sym) ;
83
- Ok ( TestLib {
90
+ TestLib {
84
91
__library,
85
92
foo,
86
93
bar,
87
- } )
94
+ }
88
95
}
89
96
pub unsafe fn foo (
90
97
& self ,
Original file line number Diff line number Diff line change @@ -72,14 +72,21 @@ impl TestLib {
72
72
where
73
73
P : AsRef < :: std:: ffi:: OsStr > ,
74
74
{
75
- let __library = :: libloading:: Library :: new ( path) ?;
75
+ let library = :: libloading:: Library :: new ( path) ?;
76
+ Ok ( Self :: from_library ( library) )
77
+ }
78
+ pub unsafe fn from_library < L > ( library : L ) -> Self
79
+ where
80
+ L : Into < :: libloading:: Library > ,
81
+ {
82
+ let __library = library. into ( ) ;
76
83
let foo = __library. get ( b"foo\0 " ) . map ( |sym| * sym) ;
77
84
let bar = __library. get ( b"bar\0 " ) . map ( |sym| * sym) ;
78
- Ok ( TestLib {
85
+ TestLib {
79
86
__library,
80
87
foo,
81
88
bar,
82
- } )
89
+ }
83
90
}
84
91
pub unsafe fn foo (
85
92
& self ,
You can’t perform that action at this time.
0 commit comments