Personally, I think Append() would be a bit too high level for a *filesystem* interface, and that something more like FUSE would make more sense. Maybe with some Capabilities() method to signal what functionality you actually implement. It does get a bit too muddy the more I think about it though.
On Tue, Jul 28, 2026, 09:09 Ben Hoyt <[email protected]> wrote: > Thanks, Ian. That was an interesting thread -- yes, complicated! However, > it seems that at least Create() was suggested several times with the same > basic shape, so I guess I'm aiming in the right direction. My Append() > seems to be novel, but I think "fits". It avoids the interface having to > think about OS-level mode/perm/flags. > > On Tue, 28 Jul 2026 at 17:31, Ian Lance Taylor <[email protected]> wrote: > >> On Mon, Jul 27, 2026 at 8:15 PM [email protected] <[email protected]> >> wrote: >> > >> > I'd like it to be shaped like io/fs.FS. However, that only supports >> read-only files (Open returns an fs.File). So my thought is to have an >> interface extension like so: >> > >> > type WriteFS interface { >> > fs.FS >> > Create(name string) (io.WriteCloser, error) >> > Append(name string) (io.WriteCloser, error) >> > } >> >> There is some previous discussion at https://go.dev/issue/45757. >> >> TL;DR: It's complicated. >> >> Ian >> > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/golang-nuts/CAL9jXCH3%3DREus%3DYZeO53zuMsTekdstX5MKCrva_eK7nWnemA7g%40mail.gmail.com > <https://groups.google.com/d/msgid/golang-nuts/CAL9jXCH3%3DREus%3DYZeO53zuMsTekdstX5MKCrva_eK7nWnemA7g%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/golang-nuts/CADgY6e9A1_%2BfyEvV%2BStwRU%2B7fUpH%3D6ZvY87RGHkHL8%2BmKrT_2w%40mail.gmail.com.
