TGViewer
Rust Rust @rust_code · 8.91K subscribers
Post #1254 3.35K
👣 Rust Совет недели: безопасный newtype для FFI без сюрпризов
Если оборачиваешь указатели или хендлы для FFI, не полагайся на “и так сойдёт”.

Явно зафиксируй layout через repr.
Связка repr(transparent) и repr(C) даёт предсказуемое представление в памяти. Тип снаружи выглядит как обёртка, а для компилятора это тот же layout, что и у внутреннего значения.
Что это даёт на практике

• бинарная совместимость с C

• отсутствие скрытых паддингов и перестановок полей

• возможность делать приведения без transmute

• нормальный, идиоматичный способ оборачивать raw handle и pointer

В итоге ты получаешь типобезопасность Rust без потери контроля над ABI.
Если работаешь с FFI и не фиксируешь repr, ты оставляешь поведение на усмотрение компилятора. И это рано или поздно выстрелит.
  • 👍 12
  • ❤ 7
  • 🔥 4
  • 🥰 2
  • 🤗 1
More from @rust_code
  1. Sep 23, 2026photo post
  2. Sep 20, 2026Zero cost
  3. Sep 19, 2026🦀 NVIDIA официально идёт в native GPU programming на Rust Теперь CUDA Rust позволяет писа…
  4. Sep 18, 2026yagni
  5. Sep 17, 2026🦀 Rust Pinning без магии: `Pin`, `Unpin` и `Future::poll` Одна из самых сложных тем в Rus…
  6. Sep 17, 2026Участвуй во всероссийском ИТ-чемпионате МТС True Tech Champ 2026 c призовой фондом 10 250…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →