var searchIndex = {}; searchIndex["maidsafe_utilities"] = {"doc":"# MaidSafe Utilities","items":[[0,"thread","maidsafe_utilities","Utilities related to threading.",null,null],[3,"RaiiThreadJoiner","maidsafe_utilities::thread","A RAII style thread joiner. The destruction of an instance of this type will block until\nthe thread it is managing has joined.",null,null],[11,"new","","Create a new instance of self-managing thread joiner",0,{"inputs":[{"name":"joinhandle"}],"output":{"name":"raiithreadjoiner"}}],[11,"drop","","",0,null],[0,"log","maidsafe_utilities","Allows initialising the env_logger with a standard message format.",null,null],[5,"init","maidsafe_utilities::log","Initialises the env_logger for output to stderr.",null,{"inputs":[{"name":"bool"}],"output":null}],[5,"init_to_file","","Initialises the env_logger for output to a file and to stderr.",null,{"inputs":[{"name":"bool"},{"name":"p"}],"output":{"name":"result"}}],[0,"event_sender","maidsafe_utilities","Utilities related to event-subsetting.",null,null],[3,"EventSender","maidsafe_utilities::event_sender","This structure is coded to achieve event-subsetting. Receivers in Rust are blocking. One cannot\nlisten to multiple receivers at the same time except by using `try_recv` which again is bad for\nthe same reasons spin-lock based on some sleep is bad (wasting cycles, 50% efficient on an\naverage etc.).",null,null],[4,"EventSenderError","","Errors that can be returned by EventSender",null,null],[13,"EventSubset","","Error sending the event subset",1,null],[13,"Category","","Error sending the event category",1,null],[4,"MaidSafeEventCategory","","Category of events meant for a MaidSafe observer listening to both, routing and crust events",null,null],[13,"Crust","","Used by Crust to indicate a Crust Event has been fired",2,null],[13,"Routing","","Used by Routing to indicate a Routing Event has been fired",2,null],[6,"MaidSafeObserver","","Observer that Crust (and users of Routing if required) must allow to be registered",null,null],[11,"fmt","","",1,null],[11,"new","","Create a new instance of `EventSender`. Category type, category value and EventSubset type\nare baked into `EventSender` to disallow user code from misusing it.",3,{"inputs":[{"name":"sender"},{"name":"category"},{"name":"sender"}],"output":{"name":"eventsender"}}],[11,"send","","Fire an allowed event/signal to the observer.",3,null],[11,"clone","","",3,null],[11,"fmt","","",2,null],[11,"clone","","",2,null],[0,"serialisation","maidsafe_utilities","Functions for serialisation and deserialisation",null,null],[4,"SerialisationError","maidsafe_utilities::serialisation","Serialisation error.",null,null],[13,"Serialise","","Error during serialisation (encoding).",4,null],[13,"Deserialise","","Error during deserialisation (decoding).",4,null],[5,"serialise","","Serialise an Encodable type",null,{"inputs":[{"name":"t"}],"output":{"name":"result"}}],[5,"deserialise","","Deserialise a Decodable type",null,null],[5,"serialise_into","","Serialise an Encodable type directly into a Write.",null,{"inputs":[{"name":"t"},{"name":"w"}],"output":{"name":"result"}}],[5,"deserialise_from","","Deserialise a Decodable type directly from a Read",null,{"inputs":[{"name":"r"}],"output":{"name":"result"}}],[11,"fmt","","",4,null],[11,"fmt","","",4,null],[11,"description","","",4,null],[11,"cause","","",4,null],[11,"from","","",4,{"inputs":[{"name":"encodingerror"}],"output":{"name":"serialisationerror"}}],[11,"from","","",4,{"inputs":[{"name":"decodingerror"}],"output":{"name":"serialisationerror"}}],[14,"unwrap_result!","maidsafe_utilities","A replacement for calling `unwrap()` on a `Result`.",null,null],[14,"unwrap_option!","","A replacement for calling `unwrap()` on an `Option`.",null,null],[14,"thread!","","This macro is intended to be used in all cases where we want to spawn a new thread of execution\nand if that is not possible then panic out.",null,null]],"paths":[[3,"RaiiThreadJoiner"],[4,"EventSenderError"],[4,"MaidSafeEventCategory"],[3,"EventSender"],[4,"SerialisationError"]]}; initSearch(searchIndex);