Files
obitools4/autodoc/docmd/pkg/obiutils/goutils.md
T
Eric Coissac 8c7017a99d ⬆️ version bump to v4.5
- Update obioptions.Version from "Release 4.4.29" to "/v/ Release v5"
- Update version.txt from 4.29 → .30
(automated by Makefile)
2026-04-13 13:34:53 +02:00

1.3 KiB
Raw Blame History

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. intfloat64, 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.