Lines Matching defs:Symbol
189 unsafe fn get_impl<T, F>(&self, symbol: &[u8], on_null: F) -> Result<Symbol<T>, crate::Error>
190 where F: FnOnce() -> Result<Symbol<T>, crate::Error>
206 Some(Symbol {
224 /// Symbol is interpreted as-is; no mangling is done. This means that symbols like `x::y` are
230 /// `Symbol` with a wrong type is undefined.
243 pub unsafe fn get<T>(&self, symbol: &[u8]) -> Result<Symbol<T>, crate::Error> {
270 /// Symbol is interpreted as-is; no mangling is done. This means that symbols like `x::y` are
286 pub unsafe fn get_singlethreaded<T>(&self, symbol: &[u8]) -> Result<Symbol<T>, crate::Error> {
287 self.get_impl(symbol, || Ok(Symbol {
356 /// Symbol from a library.
358 /// A major difference compared to the cross-platform `Symbol` is that this does not ensure that the
359 /// `Symbol` does not outlive the `Library` it comes from.
360 pub struct Symbol<T> {
365 impl<T> Symbol<T> {
366 /// Convert the loaded `Symbol` into a raw pointer.
372 impl<T> Symbol<Option<T>> {
374 pub fn lift_option(self) -> Option<Symbol<T>> {
378 Some(Symbol {
386 unsafe impl<T: Send> Send for Symbol<T> {}
387 unsafe impl<T: Sync> Sync for Symbol<T> {}
389 impl<T> Clone for Symbol<T> {
390 fn clone(&self) -> Symbol<T> {
391 Symbol { ..*self }
395 impl<T> ::std::ops::Deref for Symbol<T> {
405 impl<T> fmt::Debug for Symbol<T> {
412 f.write_str(&format!("Symbol@{:p} from {:?}",
416 f.write_str(&format!("Symbol {:?}@{:p} from {:?}",
421 f.write_str(&format!("Symbol@{:p}", self.pointer))