From 1ff96038c47fa9f067e8ba0c9a77c9ae120e5aa2 Mon Sep 17 00:00:00 2001 From: Sky Johnson Date: Sat, 19 Apr 2025 12:33:53 -0500 Subject: [PATCH] update readme --- README.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/README.md b/README.md index 8c7ee58..6cb9134 100644 --- a/README.md +++ b/README.md @@ -110,6 +110,54 @@ firstIP, err := cfg.GetString("allowed_ips.0") username, err := cfg.GetString("database.credentials.username") ``` +## Writing Data + +Fin supports writing data back to its format, allowing you to create or modify data at runtime: + +```go +package main + +import ( + "os" + "git.sharkk.net/Sharkk/Fin" +) + +func main() { + // Create new data structure + data := fin.NewData() + + // Set values + data.GetData()["server"] = map[string]any{ + "host": "localhost", + "port": 8080, + } + data.GetData()["debug"] = true + data.GetData()["allowed_ips"] = []any{ + "192.168.1.1", + "10.0.0.1", + } + + // Write to file + file, err := os.Create("config.conf") + if err != nil { + panic(err) + } + defer file.Close() + + // Use the Write method + err = data.Write(file) + if err != nil { + panic(err) + } + + // Or use the standalone Save function + err = fin.Save(file, data) + if err != nil { + panic(err) + } +} +``` + ## Performance Fin goes blow-for-blow against Go's standard JSON library, and performs incredibly versus