sing/TODO

37 lines
No EOL
1.2 KiB
Text

# Sing
Std
I/o
Negotiator
Generator
## What is sing meant to be?
- Provide stdio interface to traits
- not like serde because it's for traits instead of objects
- not like clap since it works at run time, not before
- similar ease of use as both of the above though
## How to get there
- Using lalrpop (in a feature flag)
- Maybe utilize serde
- Look at how clap handles states between macro calls
- They operate on a singleton lol
- We should, too
- Providing both a builder and derive interface makes sense
- Needs a list of traits and one for functions
- latter one should be created from the first with a macro
- should provide a method to match a call to these functions
- It should also own (locked) Stdin, Stdout and Stderr (or any one Read and two Write objects)
## Links oder so lül
https://serde.rs/impl-serializer.html
https://docs.serde.rs/serde/trait.Serializer.html
https://docs.rs/proc-macro2/1.0.36/proc_macro2/
https://docs.rs/syn/1.0.86/syn/
https://github.com/clap-rs/clap/blob/master/src/derive.rs
https://github.com/clap-rs/clap
https://github.com/clap-rs/clap/blob/v3.0.14/examples/tutorial_builder/README.md
https://www.morling.dev/blog/whats-in-a-good-error-message/