AgentSkillsCN

cairo-custom-data-structures

当请求涉及在 Cairo 中使用 `if`、`else`、`loop`、`while`、`for`、`break` 与 `continue` 等控制流语句时,讲解 Cairo 的条件判断、循环结构以及循环返回值的用法。

SKILL.md
--- frontmatter
name: cairo-custom-data-structures
description: 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.

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