server icon indicating copy to clipboard operation
server copied to clipboard

Autodocument vars/features

Open MatthewCroughan opened this issue 2 years ago • 2 comments

When making additional envvars that control the program/code flow like https://github.com/StardustXR/server/commit/cac2be7a4fb4f1eea187322dc3aad291007e72bc it is important to consider that it is not automatically documenting itself or making itself known in anyway.

It might be possible to make a rust function that mandates a documentation string, and that could be printed in some way by the program, imagine stardust-xr-server --list-vars. The way --list-vars could be populated is by a function like stardustxr_make_feature which would take a documentation string and env var as arguments, therefore making it impossible to make an envvar lookup that doesn't document itself and make itself known within the code.

MatthewCroughan avatar May 19 '23 02:05 MatthewCroughan

Should a config struct be introduced that is build from cli args, env vars and config files to solve this? This struct could easily be (self-) documented and extended. It would also encapsulate all configuration.

Sntx626 avatar Mar 04 '24 14:03 Sntx626

There are already proven crates that we could use to achive this, i.e. config and figment.

If there's interest for something like it, I'd be willing to implement a draft PR with this feature.

Sntx626 avatar Mar 04 '24 20:03 Sntx626