[][src]Struct haybale_pitchfork::ConstantTimeResultForFunction

pub struct ConstantTimeResultForFunction<'a> {
    pub funcname: &'a str,
    pub path_results: Vec<ConstantTimeResultForPath>,
    pub block_coverage: HashMap<String, BlockCoverage>,
    pub error_filename: Option<String>,
    // some fields omitted
}

Holds information about the results of a constant-time analysis of a particular function.

Fields

funcname: &'a str

Name of the toplevel function we analyzed

path_results: Vec<ConstantTimeResultForPath>

the ConstantTimeResultForPaths for each path in that function. Note that since we can't progress beyond a NotConstantTime or OtherError result on a particular path, there may be many more paths than the ones listed here. We simply have no way of knowing how many more paths there might be beyond one of these errors.

block_coverage: HashMap<String, BlockCoverage>

Map from function names to statistics on the block coverage of those functions. Functions not appearing in the map were not encountered on any path, or were hooked.

Note that in the case of ConstantTimeResultForPath::NotConstantTime or ConstantTimeResultForPath::OtherError, the coverage stats consider the block in which the error occurred to be covered, even if the portion of the block after where the error occurred was not covered.

error_filename: Option<String>

If we logged all the detailed error messages, then this is the name of the file they were logged to. Otherwise, if this is None, we did not log the detailed error messages. (In either case, all the detailed error messages are available in the path_results field above.)

Methods

impl<'a> ConstantTimeResultForFunction<'a>[src]

pub fn first_ct_violation(&self) -> Option<&str>[src]

Return the violation_message for the first NotConstantTime result encountered, if there is one.

pub fn first_error_or_violation(&self) -> Option<&ConstantTimeResultForPath>[src]

Return the first NotConstantTime or OtherError result encountered, if there is one.

pub fn path_statistics(&self) -> PathStatistics[src]

Trait Implementations

impl<'a> Display for ConstantTimeResultForFunction<'a>[src]

Produces a pretty (even colored!) description of the ConstantTimeResultForFunction, including selected coverage statistics

Auto Trait Implementations

impl<'a> RefUnwindSafe for ConstantTimeResultForFunction<'a>

impl<'a> Send for ConstantTimeResultForFunction<'a>

impl<'a> Sync for ConstantTimeResultForFunction<'a>

impl<'a> Unpin for ConstantTimeResultForFunction<'a>

impl<'a> UnwindSafe for ConstantTimeResultForFunction<'a>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.