Expand description

This crate contains the types for manipulating the intermediate representation for Sunscreen’s compiler backend.


Functions related to getting more information about a node in the execution graph. E.g. getting operands for operations.


The intermediate representation for an FHE program used in the compiler back-end.
A wrapper for ascertaining the structure of the underlying FheProgram. This type is used in FheProgram::forward_traverse and FheProgram::reverse_traverse callbacks.
Contains information about a node in the FHE program graph.
A list of tranformations to be applied to the FheProgram graph.


Contains information about an edge between nodes in the FHE program graph.
Represents an error that can occur in this crate.
An error in an FheProgram.
A transform for an FheProgram. Callbacks in FheProgram::forward_traverse and FheProgram::reverse_traverse should emit these to update the graph.
Represents a literal value in an expression.
An error on a node in an FheProgram.
An operation in the execution graph.
The type of output from an Fhe Program’s graph node.
Sunscreen supports the BFV scheme.
Represents a standard security level according to the HomomorphicEncryption.org security standard. The value SecLevelType.None signals that no standard security level should be imposed. The value SecLevelType.TC128 provides a very high level of security and is the default security level enforced by Microsoft SEAL when constructing a SEALContext object. Normal users should not have to specify the security level explicitly anywhere.
Transforms can refer to nodes that already exist in the graph or nodes that don’t yet exist in the graph, but will be inserted in a previous transform.

Type Definitions

The index type of a node that exists in a transform list, but does not yet exist in the intermediate representation graph.
The name of an Operation
Wrapper around Result with this crate’s error type.