Documentation
¶
Overview ¶
Package main demonstrates format.File: the declarative typed file descriptor for reading, writing, and updating files with full codec validation.
Scenario: an IoT sensor data pipeline that:
- Loads a TOML service config on startup using a static format.File
- Applies a single env var override via format.FromEnvVar
- Writes and reads per-sensor JSON measurement files using a template path
- Validates path variables (date format) with a format.FilePathParam codec
- Handles all typed file errors with errors.As
- Wires a stats.FileObserver for per-operation metrics + slog for structured errors
- Writes and reads raw binary (PNG) files using format.Binary + validate.PNG
Key patterns shown:
- format.NewFile — declare once, use anywhere (mirrors rest.Route / events.Channel)
- format.File.BuildPath — pre-flight path validation without any I/O
- format.File.Update — atomic read-modify-write in one call
- format.FileOptions — wiring observer + custom file permission
- format.FilePathParamError, format.MissingFilePathVarError, format.FileReadError — navigate via errors.As
- format.Binary — raw binary file I/O with magic-byte validation
Run with: go run ./examples/file-io
Click to show internal directories.
Click to hide internal directories.