Explain how to build custom data structures in Cairo using structs, traits, and dictionaries; use when a request involves implementing mutable collections (like a vector) or handling Destruct/Drop...
SKILL.md
Cairo Custom Data Structures
Overview
Guide users through building mutable data structures on top of dictionaries and traits, including proper destruction.
Quick Use
Read references/custom-data-structures.md before answering.
Emphasize that arrays are immutable; use Felt252Dict for mutable storage.
Call out Destruct implementations for structs containing dictionaries.
Response Checklist
Define a trait interface for the structure's operations.
Store values in a Felt252Dict and track len separately when emulating vectors.
Use Nullable when storing generic T in a dict.
Implement Destruct to squash() dictionaries.
Example Requests
"How do I build a mutable vector in Cairo?"
"Why does my struct with a dictionary need Destruct?"