### TODO
* [x] Better show some needed informations before some specific loop operation starts
* [x] Limit loop is very strange.
* [x] Show undo/redo with what has been reverted
* [x] Limit without loop is very unstable...
* [x] Prompt for edit-row-multiple
* [ ] New command
* [x] Show History of things
* [-] Drop : Not necessarily needed, THis is handled by command loop logic
* [-] Add column loop : Not necessarily needed
- Possibly...
* [ ] Trim all + Strip Double quote
* [ ] Undo/Redo multiple times
* [ ] Check limiter preset
* [ ] Create test.rs for easier testing
- In built cli's interface should be simple and easy but also lightweight and fast.
- No bloat: dependencies are better when smallest
* [ ] Library usage ergonomic binding
-> Hard
* [ ] Command read from stdin by default ( This is possible with simple read\_line solution )
* [ ] Automatic build tests
* [ ] Get + Set selection api ( Consider if this is necessary, not mandate but eaiser for end users )
* [ ] Make test script -> Ok... this is quite cumbersome
* [ ] Command based undo mechanic
### SEMI-DONE
* [-] Use different character when cell value is empty
* [-] Enable super pretty print with columns' current longest width value. ::
-> This might be helpful, but there are many good tools that can be better. To
follow unix philosophy I'd rather let it sink
* [-] Read file as trimmed option. -> Read value as trimmed form. :: -> This is
not hard... but is it really necessary for ced? Possibly not
* [-] Import as page name support? Hmm... This may not be necessary though
* [-] ~~Floating point type~~ : Not worth the hassle
* [x] Document CED\_HISTORY\_CAPACITY
* [x] Removed trailing comma in default print method
* [x] Support multi-page for virtual data
- This is conceptually done but not thoroughly tested because current
development is focuesed on simplest cil usage. This can be improved when
proper tui implemenation is developed
* [x] Command can literaly fail if no page is imported.
- SOLUTION : Add empty page when starting a binary ( Command loop )
* [x] Added d-quoted comma support
* [x] Also in edit cell method
* [x] Should not strip completely because stripped value cannot be passed to other progams.
* [x] Processor split method
* [x] Utils strip method
* [x] Command print method
* [x] Currently edit variants do nothing if data is empty which is confusing. Infer the emptiness to user.
* [x] Execute command
* [x] Read command from file
* [x] Empty option flag is not an error and this is confusing
### NOT TODO
Some great ideas but not suitable for this in-built cli interface is placed here.
- Multi csv virtual table.
- Selection
- Option of always print
### DONE
* [x] Structure
* [x] Complete command line interface
* [x] Implement command history with memento pattern for easier implementation.
Make it swappable so that command pattern can be used later.
* [x] Add-row raw value
* [x] Column index is bugged
* [x] Alert user that command didn't succeed
* [x] Should not be able to add duplicate column
* [x] Enable setting limiter in cli
* [x] Print-column to print data about column
* [x] Support complicated viewer method -> Add environmental variant
* [x] Add schema support for easy csv import
- Read schema
- Create schema
- Export schema
- Turns out that official csv schema is very complicated... and I don't
think I need to implement in near future.
- Add simple csv sheet which describes csv value.
* [x] Make a single pass interface for cli
- With --no-confirm option
- Else always trigger confirm screen if use is satisfied with result
* [x] For this I need a complete argument parser.
- This is almost complete
- Test if cli arguments are passed to parser properly
- Make a branch where parsed flags are properly processed.
* [x] Print cell + print low's print mode
* [ ] Makefile for help is outrageous... but not the priority
* [x] Drop thiserror
* [x] Edit-rows option, maybe?
* [x] Help with command arguments
* [x] Add "CED\_VIEWER" variant
* [x] Edit-row interactive
- With default value validation
* [x] Enable limit one-line
* [x] Fixed limit inconsistency
* [x] Made add-column more versatile
* [x] Value check on input rather than input on row based.
- On loop, if value doesn't fit it should ask you to input again.
* [x] Exit from loop + comma should be escaped for sanity reason
* [x] BUG : Force update doesn't affect "empty value" although number type is set later.
* [x] BUG : Default value for schema was not applied when only default value was given.
* [x] Bug : Schema import was not working at all
* [x] Bug : Add-row didn't respect something -> What? something?
* [x] Performance improvement
* [x] Remove clone calls if possible
* [x] Separate set and edit so that edit can prevent allocation if possible.
* [x] On number text you cannot escape with comma character because it
is detected as type mismatch
* [x] Current implementation of while != None is completely broken fix this.
* [x] Added column numbers for printing
* [x] Print row command
* [x] Enable user to specify ced history capacity, so that user can also disable history
* [x] Organize mod structure -> Only expose what is necessary
* [x] Extract command to global feature
* [x] Windows compatible subprocess ( Ced Viewer )
* [x] Now arguments are order-insensitive
* [x] Disable log output
* [x] Disable loop variant for non cli build
* [x] Better print with numbers function
* [X] Improved default print formatting
* [x] Fixed empty row error
* [x] Print-row is broken... because it was only utilizing CED\_VIEWER and didn't print anything by default
* [x] Fix unlined header
* [x] Maybe help but shorter version? Also help but for binary only option maybe
* [x] Line ending import option ( CR )
* [x] Disable loop on execute argument by default.
* [x] Made argument parsing much more intuitive -> more like sh syntax
* [x] Rename-column should not allow number name : Dcsv problem.
* [x] Fixed wrong limiter behaviour
* [x] Bettered documentation
* [x] Limiter respects csv convention now
* [x] Limiter preset
* [x] Include this in command\_loop
* [x] Ced behaves very strange in windows paltform.
- This was because read\_input was not trimming properly
* [x] Write panics when ced didn't import any file
* [x] Cargo clippy
* [x] Made api page usable
* [x] Removed file from processor and included in page
* [x] Make docs.rs usable
* [x] Update dcsv version to 2.0
* [x] Update breaking changes.
* [x] Import as an array Command
* [x] Previously import always added but never shrinked read csv data
* [x] Invalid command type occurs program panic which is not desirable