Struct abstutil::time::Timer [−][src]
pub struct Timer<'a> { results: Vec<String>, stack: Vec<StackEntry>, outermost_name: String, sink: Option<Box<dyn TimerSink + 'a>>, }
Hierarchial magic
Fields
results: Vec<String>
stack: Vec<StackEntry>
outermost_name: String
sink: Option<Box<dyn TimerSink + 'a>>
Implementations
impl<'a> Timer<'a>
[src]
impl<'a> Timer<'a>
[src]pub fn new<S: Into<String>>(raw_name: S) -> Timer<'a>ⓘ
[src]
pub fn new_with_sink(name: &str, sink: Box<dyn TimerSink + 'a>) -> Timer<'a>ⓘ
[src]
pub fn throwaway() -> Timer<'a>ⓘ
[src]
fn println(&mut self, line: String)
[src]
fn selfless_println(
maybe_sink: &mut Option<Box<dyn TimerSink + 'a>>,
line: String
)
[src]
maybe_sink: &mut Option<Box<dyn TimerSink + 'a>>,
line: String
)
pub fn done(self)
[src]
Used to end the scope of a timer early.
pub fn start<S: Into<String>>(&mut self, raw_name: S)
[src]
pub fn stop<S: Into<String>>(&mut self, raw_name: S)
[src]
pub fn start_iter<S: Into<String>>(&mut self, raw_name: S, total_items: usize)
[src]
pub fn next(&mut self)
[src]
pub fn cancel_iter_early(&mut self)
[src]
pub fn add_result(&mut self, elapsed: f64, line: String)
[src]
pub fn parallelize<I, O, F: Fn(I) -> O>(
&mut self,
timer_name: &str,
requests: Vec<I>,
cb: F
) -> Vec<O> where
I: Send,
O: Send,
F: Send + Clone + Copy,
[src]
&mut self,
timer_name: &str,
requests: Vec<I>,
cb: F
) -> Vec<O> where
I: Send,
O: Send,
F: Send + Clone + Copy,
Execute the callback over all requests, using all CPUs available. The order of the result is deterministic and matches the input.
pub fn parallelize_polite<I, O, F: Fn(I) -> O>(
&mut self,
timer_name: &str,
requests: Vec<I>,
cb: F
) -> Vec<O> where
I: Send,
O: Send,
F: Send + Clone + Copy,
[src]
&mut self,
timer_name: &str,
requests: Vec<I>,
cb: F
) -> Vec<O> where
I: Send,
O: Send,
F: Send + Clone + Copy,
Like parallelize
, but leave one CPU free, to avoid thrashing the user’s system.
fn inner_parallelize<I, O, F: Fn(I) -> O>(
&mut self,
timer_name: &str,
requests: Vec<I>,
cb: F,
num_cpus: u32
) -> Vec<O> where
I: Send,
O: Send,
F: Send + Clone + Copy,
[src]
&mut self,
timer_name: &str,
requests: Vec<I>,
cb: F,
num_cpus: u32
) -> Vec<O> where
I: Send,
O: Send,
F: Send + Clone + Copy,
pub fn read_file(&mut self, path: &str) -> Result<()>
[src]
Then the caller passes this in as a reader
Trait Implementations
impl<'a> Read for Timer<'a>
[src]
impl<'a> Read for Timer<'a>
[src]fn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>
[src]
pub fn read_vectored(
&mut self,
bufs: &mut [IoSliceMut<'_>]
) -> Result<usize, Error>
1.36.0[src]
&mut self,
bufs: &mut [IoSliceMut<'_>]
) -> Result<usize, Error>
pub fn is_read_vectored(&self) -> bool
[src]
pub unsafe fn initializer(&self) -> Initializer
[src]
pub fn read_to_end(&mut self, buf: &mut Vec<u8, Global>) -> Result<usize, Error>
1.0.0[src]
pub fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
1.0.0[src]
pub fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
1.6.0[src]
pub fn by_ref(&mut self) -> &mut Self
1.0.0[src]
pub fn bytes(self) -> Bytes<Self>
1.0.0[src]
pub fn chain<R>(self, next: R) -> Chain<Self, R> where
R: Read,
1.0.0[src]
R: Read,