Files
obitools4/autodoc/docmd/pkg/obiutils/goutils.md
T

17 lines
1.3 KiB
Markdown
Raw Normal View History

2026-04-07 08:36:50 +02:00
# `obiutils` Package Overview
This Go package provides utility functions for common data conversion, serialization, and reflection tasks.
- **Custom Error Types**: Defines typed errors (`NotAnInteger`, `NotAFloat64`, etc.) for precise type validation failures.
- **Interface-to-Type Casting**: Offers robust conversion functions:
- `InterfaceToFloat64Map`, `InterfaceToIntSlice`, etc., handling nested interfaces and type coercion (e.g. `int``float64`, slices of `interface{}`).
- **File I/O**: `ReadLines` reads a file line-by-line into a string slice, handling buffered reading efficiently.
- **Concurrency**: `AtomicCounter` returns an incrementing integer generator—thread-safe via mutex, optionally starting from a given value.
- **JSON Serialization**: `JsonMarshal` and `JsonMarshalByteBuffer` provide UTF8preserving JSON encoding (avoids Gos default HTML escaping).
- **Reflection Helpers**:
- `IsAMap`, `IsASlice`, `IsAnArray` detect container types.
- `HasLength`, `Len`, and `IsAContainer` abstract length operations across maps, slices, arrays, or custom types with a `.Len()` method.
- **Deep Copying**: `MustFillMap` performs deep copying of nested structures using `go-deepcopy`.
All functions prioritize safety, type correctness, and usability in data-heavy or concurrent applications.