var searchIndex = {}; searchIndex["sharedlib"] = {"doc":"A simple cross-platform library loader.","items":[[3,"Lib","sharedlib","A shared library which uses bound lifetimes to track its [Symbols](trait.Symbol.html).\nThe inner library cannot be dropped if at least one loose symbol exists.",null,null],[3,"LibTracked","","A shared library which which allows a user-provided ref-counting implementation to track its [Symbols](trait.Symbol.html).\nThe inner library will not be droped until all of teh ref-counts are dropped.",null,null],[3,"LibUnsafe","","A shared library which does not track its [Symbols](trait.Symbol.html).\nThe inner library may be dropped at any time, even if it has loose symbols.",null,null],[3,"Data","","A pointer to shared data which uses a bound lifetime to avoid outliving its library.",null,null],[3,"DataTracked","","A pointer to shared data which allows a user-provided ref-counting implementation to avoid outliving its library.",null,null],[3,"Func","","A pointer to a shared function which uses a bound lifetime to avoid outliving its library.",null,null],[3,"FuncTracked","","A pointer to a shared function which allows a user-provided ref-counting implementation to avoid outliving its library.",null,null],[4,"SharedlibError","","An error returned when a function in [sharedlib](index.html) fails. Other errors are wrapped in this enum before being returned.",null,null],[13,"LibraryClose","","Wraps a `LibraryClose` error in a [SharedlibError](enum.SharedlibError.html).",0,null],[13,"LibraryFindSymbol","","Wraps a `LibraryFindSymbol` error in a [SharedlibError](enum.SharedlibError.html).",0,null],[13,"LibraryOpen","","Wraps a `LibraryOpen` error in a [SharedlibError](enum.SharedlibError.html).",0,null],[13,"OsError","","Wraps a `OsError` error in a [SharedlibError](enum.SharedlibError.html).",0,null],[13,"OsErrorFailure","","Wraps a `OsErrorFailure` error in a [SharedlibError](enum.SharedlibError.html).",0,null],[0,"error","","Defines errors which may be returned by [sharedlib](index.html).",null,null],[3,"OsError","sharedlib::error","An error which occurs when an operating system function fails.",null,null],[3,"OsErrorFailure","","An error which occurs when an operating system function fails and no information is available.",null,null],[3,"LibraryClose","","An error which occurs when a shared library fails to close.",null,null],[3,"LibraryFindSymbol","","An error which occurs when a symbol cannot be found in a shared library.",null,null],[3,"LibraryOpen","","An error which occurs when a shared library fails to open.",null,null],[4,"SharedlibError","","An error returned when a function in [sharedlib](index.html) fails. Other errors are wrapped in this enum before being returned.",null,null],[13,"LibraryClose","","Wraps a `LibraryClose` error in a [SharedlibError](enum.SharedlibError.html).",0,null],[13,"LibraryFindSymbol","","Wraps a `LibraryFindSymbol` error in a [SharedlibError](enum.SharedlibError.html).",0,null],[13,"LibraryOpen","","Wraps a `LibraryOpen` error in a [SharedlibError](enum.SharedlibError.html).",0,null],[13,"OsError","","Wraps a `OsError` error in a [SharedlibError](enum.SharedlibError.html).",0,null],[13,"OsErrorFailure","","Wraps a `OsErrorFailure` error in a [SharedlibError](enum.SharedlibError.html).",0,null],[11,"fmt","","",1,null],[11,"new","","Creates a new [OsError](struct.OsError.html).",1,{"inputs":[{"name":"string"},{"name":"string"}],"output":{"name":"self"}}],[11,"fmt","","",1,null],[11,"description","","",1,null],[11,"cause","","",1,null],[11,"fmt","","",2,null],[11,"new","","Creates a new [OsErrorFailure](struct.OsErrorFailure.html).",2,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[11,"fmt","","",2,null],[11,"description","","",2,null],[11,"cause","","",2,null],[11,"fmt","","",3,null],[11,"new","","Creates a new [LibraryClose](struct.LibraryClose.html).",3,{"inputs":[{"name":"box"}],"output":{"name":"self"}}],[11,"fmt","","",3,null],[11,"description","","",3,null],[11,"cause","","",3,null],[11,"fmt","","",4,null],[11,"new","","Creates a new [LibraryFindSymbol](struct.LibraryFindSymbol.html).",4,{"inputs":[{"name":"box"},{"name":"string"}],"output":{"name":"self"}}],[11,"fmt","","",4,null],[11,"description","","",4,null],[11,"cause","","",4,null],[11,"fmt","","",5,null],[11,"new","","Creates a new [LibraryOpen](struct.LibraryOpen.html).",5,{"inputs":[{"name":"box"},{"name":"pathbuf"}],"output":{"name":"self"}}],[11,"fmt","","",5,null],[11,"description","","",5,null],[11,"cause","","",5,null],[11,"fmt","sharedlib","",0,null],[11,"fmt","","",0,null],[11,"description","","",0,null],[11,"cause","","",0,null],[11,"from","","",0,{"inputs":[{"name":"libraryclose"}],"output":{"name":"sharedliberror"}}],[11,"from","","",0,{"inputs":[{"name":"libraryfindsymbol"}],"output":{"name":"sharedliberror"}}],[11,"from","","",0,{"inputs":[{"name":"libraryopen"}],"output":{"name":"sharedliberror"}}],[11,"from","","",0,{"inputs":[{"name":"oserror"}],"output":{"name":"sharedliberror"}}],[11,"from","","",0,{"inputs":[{"name":"oserrorfailure"}],"output":{"name":"sharedliberror"}}],[6,"SharedlibResult","sharedlib::error","The result type returned by functions in [sharedlib](index.html) to indicate success or failure.",null,null],[11,"fmt","sharedlib","",6,null],[11,"new","","Opens a shared library at the specified path.\nThe path is used in conjunction with platform specific shared library search paths to determine which shared library will be opened. Search paths vary across environments and are not discussed in this documentation. The behavior of this function when it is called on the same path multiple times is platform specific. If you wish to obtain multiple copies of a library within the same code base in a platform generic way, you should load the symbol once in a [LibTracked](struct.LibTracked.html) like [LibArc](struct.LibArc.html), or [LibRc](struct.LibRc.html), and pass around copies of the [LibTracked](struct.LibTracked.html).",6,{"inputs":[{"name":"tpath"}],"output":{"name":"r"}}],[11,"find_data","","Finds and returns a data symbol within the shared library.\nBy passing in a null terminated string, an extra allocation may be avoided.",6,null],[11,"find_func","","Finds and returns a function symbol within the shared library.\nBy passing in a null terminated string, an extra allocation may be avoided.",6,null],[11,"fmt","","",7,null],[11,"clone","","",7,null],[11,"new","","Opens a shared library at the specified path.\nThe path is used in conjunction with platform specific shared library search paths to determine which shared library will be opened. Search paths vary across environments and are not discussed in this documentation. The behavior of this function when it is called on the same path multiple times is platform specific. If you wish to obtain multiple copies of a library within the same code base in a platform generic way, you should load the symbol once in a [LibTracked](struct.LibTracked.html) like [LibArc](struct.LibArc.html), or [LibRc](struct.LibRc.html), and pass around copies of the [LibTracked](struct.LibTracked.html).",7,{"inputs":[{"name":"tpath"}],"output":{"name":"r"}}],[11,"find_data","","Finds and returns a data symbol within the shared library.\nBy passing in a null terminated string, an extra allocation may be avoided.",7,null],[11,"find_func","","Finds and returns a function symbol within the shared library.\nBy passing in a null terminated string, an extra allocation may be avoided.",7,null],[11,"fmt","","",8,null],[11,"new","","Opens a shared library at the specified path.\nThe path is used in conjunction with platform specific shared library search paths to determine which shared library will be opened. Search paths vary across environments and are not discussed in this documentation. The behavior of this function when it is called on the same path multiple times is platform specific. If you wish to obtain multiple copies of a library within the same code base in a platform generic way, you should load the symbol once in a [LibTracked](struct.LibTracked.html) like [LibArc](struct.LibArc.html), or [LibRc](struct.LibRc.html), and pass around copies of the [LibTracked](struct.LibTracked.html).",8,{"inputs":[{"name":"tpath"}],"output":{"name":"r"}}],[11,"find_data","","Finds and returns a data symbol within the shared library.\nBy passing in a null terminated string, an extra allocation may be avoided.",8,null],[11,"find_func","","Finds and returns a function symbol within the shared library.\nBy passing in a null terminated string, an extra allocation may be avoided.",8,null],[11,"fmt","","",9,null],[11,"new","","Creates a new [Data](struct.Data.html).\nThis should only be called within the library.",9,{"inputs":[{"name":"t"}],"output":{"name":"self"}}],[11,"get","","",9,null],[11,"fmt","","",10,null],[11,"clone","","",10,null],[11,"new","","Creates a new [DataTracked](struct.DataTracked.html).\nThis should only be called within the library.",10,{"inputs":[{"name":"dataunsafe"},{"name":"tlib"}],"output":{"name":"self"}}],[11,"get","","",10,null],[11,"new","","Creates a new [Func](struct.Func.html).\nThis should only be called within the library.",11,{"inputs":[{"name":"funcunsafe"}],"output":{"name":"self"}}],[11,"get","","",11,null],[11,"fmt","","",12,null],[11,"new","","Creates a new [FuncTracked](struct.FuncTracked.html).\nThis should only be called within the library.",12,{"inputs":[{"name":"funcunsafe"},{"name":"tlib"}],"output":{"name":"self"}}],[11,"get","","",12,null],[11,"clone","","",12,null],[6,"SharedlibResult","","The result type returned by functions in [sharedlib](index.html) to indicate success or failure.",null,null],[6,"LibArc","","A shared library which implements [LibTracked](struct.LibTracked.html) with atomic ref-counting to track its [Symbols](trait.Symbol.html).",null,null],[6,"LibRc","","A shared library which implements [LibTracked](struct.LibTracked.html) with atomic ref-counting to track its [Symbols](trait.Symbol.html).",null,null],[6,"DataArc","","A pointer to shared data which uses atomic ref-counting to avoid outliving its library.",null,null],[6,"DataRc","","A pointer to shared data which uses non-atomic ref-counting to avoid outliving its library.",null,null],[6,"DataUnsafe","","A pointer to shared data which provides no protection against outliving its library.",null,null],[6,"FuncArc","","A pointer to a shared function which uses atomic ref-counting to avoid outliving its library.",null,null],[6,"FuncRc","","A pointer to a shared function which uses non-atomic ref-counting to avoid outliving its library.",null,null],[6,"FuncUnsafe","","A pointer to a shared function which provides no protection against outliving its library.",null,null],[8,"Symbol","","A symbol from a shared library.",null,null],[10,"get","","Provides access to the data that this symbol references.",13,null],[11,"get","","",14,null],[11,"get","","",15,null]],"paths":[[4,"SharedlibError"],[3,"OsError"],[3,"OsErrorFailure"],[3,"LibraryClose"],[3,"LibraryFindSymbol"],[3,"LibraryOpen"],[3,"Lib"],[3,"LibTracked"],[3,"LibUnsafe"],[3,"Data"],[3,"DataTracked"],[3,"Func"],[3,"FuncTracked"],[8,"Symbol"],[6,"DataUnsafe"],[6,"FuncUnsafe"]]}; initSearch(searchIndex);