Using the interface instead of the encoding/csv.Writer allows users to use truly custom writers, or to add their own wrappers in the writer chain.
We have a use case where we want to transform our fields before writing, and allowing us to wrap the writer while keeping the lib provided SafeCSVWriter would be quite cool!
This is a breaking change as it changes the contract of type SafeCSVWriter (props from the csv.Writer can no longer be accessed from it), but I think it would be better to decouple these two?
Let me know if you think there is any downside to this? I don't see any but I am quite new with Go
Using the interface instead of the
encoding/csv.Writer
allows users to use truly custom writers, or to add their own wrappers in the writer chain.We have a use case where we want to transform our fields before writing, and allowing us to wrap the writer while keeping the lib provided SafeCSVWriter would be quite cool!
This is a breaking change as it changes the contract of
type SafeCSVWriter
(props from thecsv.Writer
can no longer be accessed from it), but I think it would be better to decouple these two?Let me know if you think there is any downside to this? I don't see any but I am quite new with Go