{
  "schemaVersion": "1.0",
  "item": {
    "slug": "rust",
    "name": "Rust",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/ivangdavila/rust",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/rust",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/rust",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=rust",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "advanced-traps.md",
      "concurrency-memory.md",
      "errors-iteration.md",
      "ownership-borrowing.md",
      "types-strings.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/rust"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/rust",
    "agentPageUrl": "https://openagent3.xyz/skills/rust/agent",
    "manifestUrl": "https://openagent3.xyz/skills/rust/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/rust/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Quick Reference",
        "body": "TopicFileKey TrapOwnership & Borrowingownership-borrowing.mdMove semantics catch everyoneStrings & Typestypes-strings.mdString vs &str, UTF-8 indexingErrors & Iterationerrors-iteration.mdunwrap() in production, lazy iteratorsConcurrency & Memoryconcurrency-memory.mdRc not Send, RefCell panicsAdvanced Trapsadvanced-traps.mdunsafe, macros, FFI, performance"
      },
      {
        "title": "Ownership — #1 Source of Compiler Errors",
        "body": "Variable moved after use — clone explicitly or borrow with &\nfor item in vec moves vec — use &vec or .iter() to borrow\nString moved into function — pass &str for read-only access"
      },
      {
        "title": "Borrowing — The Borrow Checker Always Wins",
        "body": "Can't have &mut and & simultaneously — restructure or interior mutability\nReturning reference to local fails — return owned value instead\nMutable borrow through &mut self blocks all access — split struct or RefCell"
      },
      {
        "title": "Lifetimes — When Compiler Can't Infer",
        "body": "'static means CAN live forever, not DOES — String is 'static capable\nStruct with reference needs <'a> — struct Foo<'a> { bar: &'a str }\nFunction returning ref must tie to input — fn get<'a>(s: &'a str) -> &'a str"
      },
      {
        "title": "Strings — UTF-8 Surprises",
        "body": "s[0] doesn't compile — use .chars().nth(0) or .bytes()\n.len() returns bytes, not chars — use .chars().count()\ns1 + &s2 moves s1 — use format!(\"{}{}\", s1, s2) to keep both"
      },
      {
        "title": "Error Handling — Production Code",
        "body": "unwrap() panics — use ? or match in production\n? needs Result/Option return type — main needs -> Result<()>\nexpect(\"context\") > unwrap() — shows why it panicked"
      },
      {
        "title": "Iterators — Lazy Evaluation",
        "body": ".iter() borrows, .into_iter() moves — choose carefully\n.collect() needs type — collect::<Vec<_>>() or typed binding\nIterators are lazy — nothing runs until consumed"
      },
      {
        "title": "Concurrency — Thread Safety",
        "body": "Rc is NOT Send — use Arc for threads\nMutex lock returns guard — auto-unlocks on drop, don't hold across await\nRwLock deadlock — reader upgrading to writer blocks forever"
      },
      {
        "title": "Memory — Smart Pointers",
        "body": "RefCell panics at runtime — if borrow rules violated\nBox for recursive types — compiler needs known size\nAvoid Rc<RefCell<T>> spaghetti — rethink ownership"
      },
      {
        "title": "Common Compiler Errors (NEW)",
        "body": "ErrorCauseFixvalue moved hereUsed after moveClone or borrowcannot borrow as mutableAlready borrowedRestructure or RefCellmissing lifetime specifierAmbiguous referenceAdd <'a>the trait bound X is not satisfiedMissing implCheck trait boundstype annotations neededCan't inferTurbofish or explicit typecannot move out of borrowed contentDeref movesClone or pattern match"
      },
      {
        "title": "Cargo Traps (NEW)",
        "body": "cargo update updates Cargo.lock, not Cargo.toml — manual version bump needed\nFeatures are additive — can't disable a feature a dependency enables\n[dev-dependencies] not in release binary — but in tests/examples\ncargo build --release much faster — debug builds are slow intentionally"
      }
    ],
    "body": "Quick Reference\nTopic\tFile\tKey Trap\nOwnership & Borrowing\townership-borrowing.md\tMove semantics catch everyone\nStrings & Types\ttypes-strings.md\tString vs &str, UTF-8 indexing\nErrors & Iteration\terrors-iteration.md\tunwrap() in production, lazy iterators\nConcurrency & Memory\tconcurrency-memory.md\tRc not Send, RefCell panics\nAdvanced Traps\tadvanced-traps.md\tunsafe, macros, FFI, performance\nCritical Traps (High-Frequency Failures)\nOwnership — #1 Source of Compiler Errors\nVariable moved after use — clone explicitly or borrow with &\nfor item in vec moves vec — use &vec or .iter() to borrow\nString moved into function — pass &str for read-only access\nBorrowing — The Borrow Checker Always Wins\nCan't have &mut and & simultaneously — restructure or interior mutability\nReturning reference to local fails — return owned value instead\nMutable borrow through &mut self blocks all access — split struct or RefCell\nLifetimes — When Compiler Can't Infer\n'static means CAN live forever, not DOES — String is 'static capable\nStruct with reference needs <'a> — struct Foo<'a> { bar: &'a str }\nFunction returning ref must tie to input — fn get<'a>(s: &'a str) -> &'a str\nStrings — UTF-8 Surprises\ns[0] doesn't compile — use .chars().nth(0) or .bytes()\n.len() returns bytes, not chars — use .chars().count()\ns1 + &s2 moves s1 — use format!(\"{}{}\", s1, s2) to keep both\nError Handling — Production Code\nunwrap() panics — use ? or match in production\n? needs Result/Option return type — main needs -> Result<()>\nexpect(\"context\") > unwrap() — shows why it panicked\nIterators — Lazy Evaluation\n.iter() borrows, .into_iter() moves — choose carefully\n.collect() needs type — collect::<Vec<_>>() or typed binding\nIterators are lazy — nothing runs until consumed\nConcurrency — Thread Safety\nRc is NOT Send — use Arc for threads\nMutex lock returns guard — auto-unlocks on drop, don't hold across await\nRwLock deadlock — reader upgrading to writer blocks forever\nMemory — Smart Pointers\nRefCell panics at runtime — if borrow rules violated\nBox for recursive types — compiler needs known size\nAvoid Rc<RefCell<T>> spaghetti — rethink ownership\nCommon Compiler Errors (NEW)\nError\tCause\tFix\nvalue moved here\tUsed after move\tClone or borrow\ncannot borrow as mutable\tAlready borrowed\tRestructure or RefCell\nmissing lifetime specifier\tAmbiguous reference\tAdd <'a>\nthe trait bound X is not satisfied\tMissing impl\tCheck trait bounds\ntype annotations needed\tCan't infer\tTurbofish or explicit type\ncannot move out of borrowed content\tDeref moves\tClone or pattern match\nCargo Traps (NEW)\ncargo update updates Cargo.lock, not Cargo.toml — manual version bump needed\nFeatures are additive — can't disable a feature a dependency enables\n[dev-dependencies] not in release binary — but in tests/examples\ncargo build --release much faster — debug builds are slow intentionally"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ivangdavila/rust",
    "publisherUrl": "https://clawhub.ai/ivangdavila/rust",
    "owner": "ivangdavila",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/rust",
    "downloadUrl": "https://openagent3.xyz/downloads/rust",
    "agentUrl": "https://openagent3.xyz/skills/rust/agent",
    "manifestUrl": "https://openagent3.xyz/skills/rust/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/rust/agent.md"
  }
}