• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #![allow(
2     dead_code,
3     non_snake_case,
4     non_camel_case_types,
5     non_upper_case_globals
6 )]
7 
8 extern crate libloading;
9 pub struct TestLib {
10     __library: ::libloading::Library,
11     pub foo: unsafe extern "C" fn(
12         x: ::std::os::raw::c_int,
13         y: ::std::os::raw::c_int,
14     ) -> ::std::os::raw::c_int,
15     pub bar: unsafe extern "C" fn(
16         x: *mut ::std::os::raw::c_void,
17     ) -> ::std::os::raw::c_int,
18     pub baz: unsafe extern "C" fn() -> ::std::os::raw::c_int,
19 }
20 impl TestLib {
new<P>(path: P) -> Result<Self, ::libloading::Error> where P: AsRef<::std::ffi::OsStr>,21     pub unsafe fn new<P>(path: P) -> Result<Self, ::libloading::Error>
22     where
23         P: AsRef<::std::ffi::OsStr>,
24     {
25         let library = ::libloading::Library::new(path)?;
26         Self::from_library(library)
27     }
from_library<L>( library: L, ) -> Result<Self, ::libloading::Error> where L: Into<::libloading::Library>,28     pub unsafe fn from_library<L>(
29         library: L,
30     ) -> Result<Self, ::libloading::Error>
31     where
32         L: Into<::libloading::Library>,
33     {
34         let __library = library.into();
35         let foo = __library.get(b"foo\0").map(|sym| *sym)?;
36         let bar = __library.get(b"bar\0").map(|sym| *sym)?;
37         let baz = __library.get(b"baz\0").map(|sym| *sym)?;
38         Ok(TestLib {
39             __library,
40             foo,
41             bar,
42             baz,
43         })
44     }
foo( &self, x: ::std::os::raw::c_int, y: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int45     pub unsafe fn foo(
46         &self,
47         x: ::std::os::raw::c_int,
48         y: ::std::os::raw::c_int,
49     ) -> ::std::os::raw::c_int {
50         (self.foo)(x, y)
51     }
bar( &self, x: *mut ::std::os::raw::c_void, ) -> ::std::os::raw::c_int52     pub unsafe fn bar(
53         &self,
54         x: *mut ::std::os::raw::c_void,
55     ) -> ::std::os::raw::c_int {
56         (self.bar)(x)
57     }
baz(&self) -> ::std::os::raw::c_int58     pub unsafe fn baz(&self) -> ::std::os::raw::c_int {
59         (self.baz)()
60     }
61 }
62