Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move intermediate visitor classes into a sub-namespace #20

Open
airbreather opened this issue Jul 22, 2019 · 0 comments
Open

Move intermediate visitor classes into a sub-namespace #20

airbreather opened this issue Jul 22, 2019 · 0 comments
Labels
binary breaking change enhancement New feature or request source breaking change usability Make the library easier to use
Milestone

Comments

@airbreather
Copy link
Owner

The idea behind this "visitor"-based model is to enable intermediate subclasses that provide some of the services that "normal" text and CSV processing libraries offer, e.g., first-class headers with record field count validation, char instead of byte, that sort of thing, without sacrificing any meaningful degree of performance for cases that just need to treat a file as a stream of records that follow RFC 4180.

As with #18, I didn't anticipate that this would complicate API discovery, as these intermediate visitors (not just the one for #5, but also #7 and #8, and any others that come up) get in the way if they just live in the Cursively namespace.

At least the intermediate visitors should go into a sub-namespace. Probably the base one too, since the only time you should ever need to use that type is when creating a subclass, in which case there may be value to see all your options when typing "Cursively.BaseVisitors.".

@airbreather airbreather added enhancement New feature or request usability Make the library easier to use source breaking change binary breaking change labels Jul 22, 2019
@airbreather airbreather added this to the 2.0.0 milestone Jul 22, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
binary breaking change enhancement New feature or request source breaking change usability Make the library easier to use
Projects
None yet
Development

No branches or pull requests

1 participant