Rust Pin

Rust Pin

(Jin Qing's Column, Sep., 2024)

From: https://doc.rust-lang.org/std/pin/index.html

Rust can pin data location in memory, that means its address can not be changed.

Pinned data guarantees the memory location is always valid.

Safe code can not move pinned data to another location.

Safe code users do not need to care about Pin.

  • What's moving
    • copy + ownership
    • all values are movable
      • assignment or function parameter
      • mem::replace
  • What's pinning
    • until drop
  • Address sensitivity
    • some interface is relay on pinned state
    • self-referenced type: Future
    • leverage the type system
      • Pin
    • how Pin works
      • restrict access to Ptr
    • PhantomPinned
  • Example types
    • self-referential struct
    • intrusive list
  • Drop
  • Projection and Structural Pinning
相关推荐
浮游本尊27 分钟前
Java学习第45天 - 消息队列入门、异步解耦与最终一致性(RabbitMQ / RocketMQ)
后端
fallen_fish32 分钟前
多路径写入一致性:从一次 Debug 到系统性防御
后端
用户2986985301433 分钟前
Word 文档字符级格式化:Java 实现方案详解
java·后端
血小溅34 分钟前
Skill 脚本语言选型:Python、Node.js、Shell 到底怎么选?
人工智能·后端
Heracles102434 分钟前
一篇文章教你学会MCP
后端
范闲35 分钟前
Charmbracelet TUI 生态系统指南
后端
颜进强38 分钟前
AI性能参数-截断、延迟与流式输出
前端·后端·ai编程
浮游本尊41 分钟前
Java学习第44天 - 本地二级缓存 Caffeine、Redis 分布式锁与热点 Key / 库存预扣
后端
浮游本尊44 分钟前
Java学习第43天 - Redis 缓存基础、Cache-Aside 模式与缓存一致性
后端
云技纵横44 分钟前
线程池 OOM 实战:无界队列配错,5 万个任务撑爆 JVM
后端