var searchIndex = {}; searchIndex["pulse"] = {"doc":"","items":[[3,"Select","pulse","A `Select` listens to 1 or more signals. It will wait until\nany signal becomes available before Pulsing. `Select` will then\nreturn the `Signal` that has been `Pulsed`. `Select` has no defined\nordering of events for `Signal`s when there are more then one `Signals`\npending.",null,null],[3,"SelectMap","","`SelectMap` is a wrapper around a `Select` rather then use\na unique id to find out what signal has been asserts, `SelectMap`\nwill return an supplied object.",null,null],[3,"Barrier","","A `Barrier` can listen for 1 or more `Signals`. It will only transition\nto a `Pulsed` state once all the `Signals` have `Pulsed`.",null,null],[3,"Pulse","","A `Pulse` is represents an unfired signal. It is the tx side of Signal\nA `Pulse` can only purpose it to be fired, and then it will be moved\nas to never allow it to fire again. `Dropping` a pulse will `pulse`\nThe signal, but the signal will enter an error state.",null,null],[3,"Signal","","A `Signal` represents listens for a `pulse` to occur in the system. A\n`Signal` has one of three states. Pending, Pulsed, or Errored. Pending\nmeans the pulse has not fired, but still exists. Pulsed meaning the \npulse has fired, and no longer exists. Errored means the pulse was dropped\nwithout firing. This normally means a programming error of some sort.",null,null],[3,"ThreadScheduler","","This is the `default` system scheduler that is used if no\nuser provided scheduler is installed. It is very basic\nand will block the OS thread using `thread::park`",null,null],[4,"SignalState","","Described the possible states of a Signal",null,null],[13,"Pending","","",0,null],[13,"Pulsed","","",0,null],[13,"Dropped","","",0,null],[4,"WaitError","","Represents the possible errors that can occur on a `Signal`",null,null],[13,"Dropped","","The `Pulse` was dropped before it could `Pulse`",1,null],[4,"TimeoutError","","Represents the possible errors from a wait timeout",null,null],[13,"Error","","A `WaitError` has occurred",2,null],[13,"Timeout","","The `Signal` timed-out before a `Pulse` was observed.",2,null],[5,"swap_scheduler","","Replace the current Scheduler with your own supplied scheduler.\nall `wait()` commands will be run through this scheduler now.",null,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[5,"with_scheduler","","Call the suppled closure using the supplied schedulee",null,{"inputs":[{"name":"f"},{"name":"box"}],"output":{"name":"option"}}],[11,"new","","Create a new empty `Select`",3,{"inputs":[],"output":{"name":"select"}}],[11,"add","","Add a signal to the `Select`, a unique id that is associated\nWith the signal is returned. This can be used to remove the\nsignal from the `Select` or to lookup the `Pulse` when it fires.",3,null],[11,"remove","","Remove a `Signal1 from the `Select` using it's unique id.",3,null],[11,"into_barrier","","Convert all the signals present in the `Select` into a `Barrier`",3,null],[11,"try_next","","This is a non-blocking attempt to get a `Signal` from a `Select`\nthis will return a `Some(Signal)` if there is a pending `Signal`\nin the select. Otherwise it will return `None`",3,null],[11,"len","","Get the number of Signals being watched",3,null],[11,"next","","",3,null],[11,"signal","","",3,null],[11,"new","","Create a new empty `SelectMap`",4,{"inputs":[],"output":{"name":"selectmap"}}],[11,"add","","Add a `Signal` and an associated value into the `SelectMap`",4,null],[11,"try_next","","This is a non-blocking attempt to get a `Signal` from a `SelectMap`\nthis will return a `Some((Signal, T))` if there is a pending `Signal`\nin the select. Otherwise it will return `None`",4,null],[11,"len","","Get the number of items in the `SelectMap`",4,null],[11,"next","","",4,null],[11,"signal","","",4,null],[11,"new","","Create a new Barrier from an Vector of `Siganl`s",5,null],[11,"signal","","",5,null],[8,"Signals","","allows an object to assert a wait signal",null,null],[10,"signal","","Get a signal from a object",6,null],[11,"wait","","Block the current thread until the object\nassets a pulse.",6,null],[11,"wait_timeout_ms","","Block the current thread until the object\nassets a pulse. Or until the timeout has been asserted.",6,null],[8,"Scheduler","","This is the hook into the async wait methods provided\nby `pulse`. It is required for the user to override\nthe current system scheduler.",null,null],[10,"wait","","Wait until the signal is made `ready` or `errored`",7,null],[10,"wait_timeout_ms","","Wait until the signal is made `ready` or `errored` or the\ntimeout has been reached.",7,null],[11,"fmt","","",8,null],[11,"drop","","",8,null],[11,"cast_from_usize","","Create a Pulse from a usize. This is naturally unsafe.",8,{"inputs":[{"name":"usize"}],"output":{"name":"pulse"}}],[11,"cast_to_usize","","Convert a trigger to a `usize`, This is unsafe\nand it will kill your kittens if you are not careful",8,null],[11,"pulse","","Pulse the `pulse` which will transition the `Signal` out from pending\nto ready. This moves the pulse so that it can only be fired once.",8,null],[11,"fmt","","",9,null],[11,"clone","","",9,null],[11,"drop","","",9,null],[11,"new","","Create a Signal and a Pulse that are associated.",9,null],[11,"pulsed","","Create a signal that is already pulsed",9,{"inputs":[],"output":{"name":"signal"}}],[11,"state","","Read out the state of the Signal",9,null],[11,"is_pending","","Check to see if the signal is pending. A signal",9,null],[11,"id","","This is a unique id that can be used to identify the signal from others\nSee `Select` for how this api is useful.",9,null],[11,"wait","","Block the current thread until a `pulse` is ready.\nThis will block indefinably if the pulse never fires.",9,null],[11,"wait_timeout_ms","","Block until either the pulse is sent, or the timeout is reached",9,null],[11,"callback","","",9,null],[11,"eq","","",0,null],[11,"fmt","","",0,null],[11,"into_raw","","",8,null],[11,"from_raw","","",8,null],[11,"into_raw","","",9,null],[11,"from_raw","","",9,null],[11,"eq","","",1,null],[11,"fmt","","",1,null],[11,"eq","","",2,null],[11,"ne","","",2,null],[11,"fmt","","",2,null],[11,"fmt","","",10,null],[11,"wait","","",10,null],[11,"wait_timeout_ms","","",10,null]],"paths":[[4,"SignalState"],[4,"WaitError"],[4,"TimeoutError"],[3,"Select"],[3,"SelectMap"],[3,"Barrier"],[8,"Signals"],[8,"Scheduler"],[3,"Pulse"],[3,"Signal"],[3,"ThreadScheduler"]]}; initSearch(searchIndex);