# Understanding common std.Io.Reader/Writer mistakes (0.15.1)

**URL:** <https://ziggit.dev/t/understanding-common-std-io-reader-writer-mistakes-0-15-1/11793>\
**Category:** Explain\
**Created:** [August 31, 2025, 1:37am UTC](https://ziggit.dev/t/understanding-common-std-io-reader-writer-mistakes-0-15-1/11793 "2025-08-31T01:37:47Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![npc1054657282](https://ziggit.dev/user_avatar/ziggit.dev/npc1054657282/32/5790_2.png) [@npc1054657282](https://ziggit.dev/u/npc1054657282)\
**Post date:** [August 31, 2025, 5:37am UTC](https://ziggit.dev/t/understanding-common-std-io-reader-writer-mistakes-0-15-1/11793/3 "2025-08-31T05:37:21Z")

</div>

> [@\`@fieldParentPtr()\` is innocent; what is dangerous is modifying a local copy of a structure](https://ziggit.dev/t/fieldparentptr-is-innocent-what-is-dangerous-is-modifying-a-local-copy-of-a-structure/11764):
>
> The new std.Io.Writer interface has faced a lot of misuse. Some attribute this misuse to @fieldParentPtr(). Some are eager to have Pinned struct accepted - by preventing this misuse through restricting copies of structures of ‘specific types’. In this regard, I would like to sing a different tune: @fieldParentPtr() is innocent! The real root cause of the mistake regarding the copying of structs is not the type, but the mutability of the copy target. Let us consider a very simple type: const S…

When you copy an interface and find that it needs to be `var` to use it, be careful: you are probably making a mistake and should use its pointer.

---

_[View the full topic](https://ziggit.dev/t/understanding-common-std-io-reader-writer-mistakes-0-15-1/11793)._
