gocarina / gocsv

The GoCSV package aims to provide easy CSV serialization and deserialization to the golang programming language
MIT License
1.95k stars 243 forks source link

feat: use CSVWriter interface instead of csv.Writer in SafeCSVWriter #232

Closed gfaugere closed 1 year ago

gfaugere commented 1 year ago

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

gfaugere commented 1 year ago

Closing in favour of #233 which I cleaned up a bit