Cairo Custom Data Structures

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 with Felt252Dict.

teddyjfpender 8bcd436 2 files · 2.1 KB Updated

File contents

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?"
  • "How can I update a value by index?"

Cairo by Example

teddyjfpender/skill-issues/tree/main/skills/cairo-custom-data-structures commit 8bcd436c8d

Frequently asked questions

npx skillmds@latest add teddyjfpender/cairo-custom-data-structures