Community코딩 & 개발github.com

actionbook/m03-가변성

중요: 가변성 문제에 사용하세요. 트리거: E0596, E0499, E0502, 변경 가능한 대여 불가, 이미 불변 대여됨, mut, &mut, 내부 가변성, Cell, RefCell, Mutex, RwLock, 변이성, 내부 변이성, 빌림 충돌

m03-가변성란 무엇인가요?

이 스킬은 Rust의 가변성(mutability) 문제를 해결하기 위해 설계된 필수 도구입니다. 주요 트리거로는 E0596, E0499, E0502와 같은 컴파일 오류와 "cannot borrow as mutable", "already borrowed as immutable" 같은 일반적인 오류 메시지가 포함됩니다. 이 스킬은 Cell, RefCell, Mutex, RwLock을 사용한 내부 가변성 패턴을 비롯해 mut 키워드와 &mut 참조자와 관련된 복잡한 대여 규칙을 진단하고 수정합니다. Rust의 소유권 및 대여 시스템에 대한 깊은 이해를 바탕으로, 불변 참조가 이미 존재할 때 변경 가능한 대여를 시도하거나 여러 변경 가능한 대여를 생성하는 등의 충돌 상황을 해결합니다. 이 스킬은 Rust 컴파일러의 엄격한 가변성 규칙을 효과적으로 탐색하고, 올바른 동시성 제어를 보장하기 위해 적절한 불변 가변성 래퍼를 적용하는 방법을 안내합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/actionbook/rust-skills/tree/main/skills/m03-mutability

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

m03-가변성은(는) 무엇을 하나요?

중요: 가변성 문제에 사용하세요. 트리거: E0596, E0499, E0502, 변경 가능한 대여 불가, 이미 불변 대여됨, mut, &mut, 내부 가변성, Cell, RefCell, Mutex, RwLock, 변이성, 내부 변이성, 빌림 충돌

Individual skills in this repo

This repo contains 13 individual skills — each has its own dedicated page.

actionbook/m01-ownership

CRITICAL: Use for ownership/borrow/lifetime issues. Triggers: E0382, E0597, E0506, E0507, E0515, E0716, E0106, value moved, borrowed value does not live long enough, cannot move out of, use of moved value, ownership, borrow, lifetime, 'a, 'static, move, clone, Copy, 所有权, 借用, 生命周期

actionbook/m02-resource

CRITICAL: Use for smart pointers and resource management. Triggers: Box, Rc, Arc, Weak, RefCell, Cell, smart pointer, heap allocation, reference counting, RAII, Drop, should I use Box or Rc, when to use Arc vs Rc, 智能指针, 引用计数, 堆分配

actionbook/m04-zero-cost

CRITICAL: Use for generics, traits, zero-cost abstraction. Triggers: E0277, E0308, E0599, generic, trait, impl, dyn, where, monomorphization, static dispatch, dynamic dispatch, impl Trait, trait bound not satisfied, 泛型, 特征, 零成本抽象, 单态化

actionbook/m05-type-driven

CRITICAL: Use for type-driven design. Triggers: type state, PhantomData, newtype, marker trait, builder pattern, make invalid states unrepresentable, compile-time validation, sealed trait, ZST, 类型状态, 新类型模式, 类型驱动设计

actionbook/m06-error-handling

CRITICAL: Use for error handling. Triggers: Result, Option, Error, ?, unwrap, expect, panic, anyhow, thiserror, when to panic vs return Result, custom error, error propagation, 错误处理, Result 用法, 什么时候用 panic

actionbook/m07-concurrency

CRITICAL: Use for concurrency/async. Triggers: E0277 Send Sync, cannot be sent between threads, thread, spawn, channel, mpsc, Mutex, RwLock, Atomic, async, await, Future, tokio, deadlock, race condition, 并发, 线程, 异步, 死锁

actionbook/m09-domain

CRITICAL: Use for domain modeling. Triggers: domain model, DDD, domain-driven design, entity, value object, aggregate, repository pattern, business rules, validation, invariant, 领域模型, 领域驱动设计, 业务规则

actionbook/m10-performance

CRITICAL: Use for performance optimization. Triggers: performance, optimization, benchmark, profiling, flamegraph, criterion, slow, fast, allocation, cache, SIMD, make it faster, 性能优化, 基准测试

actionbook/m11-ecosystem

Use when integrating crates or ecosystem questions. Keywords: E0425, E0433, E0603, crate, cargo, dependency, feature flag, workspace, which crate to use, using external C libraries, creating Python extensions, PyO3, wasm, WebAssembly, bindgen, cbindgen, napi-rs, cannot find, private, crate recommendation, best crate for, Cargo.toml, features, crate 推荐, 依赖管理, 特性标志, 工作空间, Python 绑定

actionbook/m12-lifecycle

Use when designing resource lifecycles. Keywords: RAII, Drop, resource lifecycle, connection pool, lazy initialization, connection pool design, resource cleanup patterns, cleanup, scope, OnceCell, Lazy, once_cell, OnceLock, transaction, session management, when is Drop called, cleanup on error, guard pattern, scope guard, 资源生命周期, 连接池, 惰性初始化, 资源清理, RAII 模式

actionbook/m13-domain-error

Use when designing domain error handling. Keywords: domain error, error categorization, recovery strategy, retry, fallback, domain error hierarchy, user-facing vs internal errors, error code design, circuit breaker, graceful degradation, resilience, error context, backoff, retry with backoff, error recovery, transient vs permanent error, 领域错误, 错误分类, 恢复策略, 重试, 熔断器, 优雅降级

actionbook/m14-mental-model

Use when learning Rust concepts. Keywords: mental model, how to think about ownership, understanding borrow checker, visualizing memory layout, analogy, misconception, explaining ownership, why does Rust, help me understand, confused about, learning Rust, explain like I'm, ELI5, intuition for, coming from Java, coming from Python, 心智模型, 如何理解所有权, 学习 Rust, Rust 入门, 为什么 Rust

actionbook/unsafe-checker

CRITICAL: Use for unsafe Rust code review and FFI. Triggers on: unsafe, raw pointer, FFI, extern, transmute, *mut, *const, union, #[repr(C)], libc, std::ffi, MaybeUninit, NonNull, SAFETY comment, soundness, undefined behavior, UB, safe wrapper, memory layout, bindgen, cbindgen, CString, CStr, 安全抽象, 裸指针, 外部函数接口, 内存布局, 不安全代码, FFI 绑定, 未定义行为

관련 스킬