classnetColarUtils::JsonSettings
sys::Obj netColarUtils::JsonSettings
JsonSettings
Allows for Easy, documented settings files
Settings will be saved in property file like file but with comments and values in Json format
All fields in the saved object with the Facet "Setting" will be saved (Json format) Fields with the Setting Facet can NOT be nullable. If a field has a default value it will be displayed as well (as a comment in saved file)
- commentChar
- Str commentChar := "#"- Line comment char (default: #) 
- consumeWs
- consume white space, returns next (non-ws) char 
- headComments
- Str[] headComments := ...- Comments to show at the top of the file commentChar will be prepanded to each line 
- load
- static Obj? load(File file, Type type)- Load settings from a file into given type 
- make
- new make(|This f)
- read
- Obj? read(Type type, InStream in)- Load the settings from a stream/file and inject them into a new object of given type the type must have an it constructor => new make(|This| f) {f(this)} Might throw an Err if parsing fails 
- readProp
- save
- Void save(Obj o, OutStream out)- Save the settings (complete overwrite) Closes the stream when done 
- update
- Try to save the file "in place" so that if use reordered or added comments we leave those alone. Will remove props that are no longer present and add new ones with default vals. If the file does not exist yet, then it just calls save()