Skip to main content
A trait that allows for custom destruction behavior of a type. In Cairo, values must be explicitly handled - they cannot be silently dropped. Types can only go out of scope in two ways:
  1. Implement Drop - for types that can be discarded trivially
  2. Implement Destruct - for types that need cleanup when destroyed. Typically, any type that contains a Felt252Dict must implement Destruct, as the Felt252Dict needs to be “squashed” when going out of scope to ensure a program is sound.
Generally, Destruct does not need to be implemented manually. It can be derived from the Drop and Destruct implementations of the type’s fields.

Signature

Examples

Here’s a simple type that wraps a Felt252Dict and needs to be destructed:

Trait functions

destruct

Signature