Skip to main content

Solution

Struct Solution 

Source
pub struct Solution { /* private fields */ }
Expand description

The result of solving a graph under one policy.

Implementations§

Source§

impl Solution

Source

pub fn enabled(&self, id: FuncId) -> CategorySet

The categories a function can raise under the solved policy.

Source

pub fn unwinds(&self, id: FuncId) -> bool

Whether a function can unwind under the solved policy.

Source

pub fn through(&self, call: &CallSite, callee: FuncId) -> CategorySet

The categories of a callee that are visible through a call.

A barrier call contains the callee’s unwinding panics, so only the aborting ones are seen through it.

Source

pub fn is_clean(&self, id: FuncId) -> bool

Whether a function raises nothing the user asked to see.

Source

pub const fn policy(&self) -> Policy

The policy this solution was produced under.

Source

pub fn activity(&self, graph: &Graph, id: FuncId) -> Activity

Which sites and calls of a function are reachable under the policy.

Source

pub const fn follows(&self, call: &CallSite) -> bool

Whether the policy admits an edge.

Source

pub fn cleared_by_suppression( &self, graph: &Graph, selection: Selection, ) -> Result<usize>

How many functions the selection shows are clean only because of the policy.

A function that raises nothing whatever is assumed is not one the suppression cleared, so the answer is the difference between two solutions rather than a count of the clean ones. That costs a second fixpoint over the graph, which is why callers ask for it only when they are about to say something about it. Functions are counted by the names the report prints.

§Errors

Returns an error if the second fixpoint does not converge.

Trait Implementations§

Source§

impl Debug for Solution

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.