Ensemble de librairies personnalisées en Go
Go to file
Benjamin VAUDOUR fc9b29b7f3 Corrections diverses : collection, datetime, ini 2024-03-04 09:20:42 +01:00
collection Corrections diverses : collection, datetime, ini 2024-03-04 09:20:42 +01:00
compare Module compare 2023-09-23 21:57:46 +02:00
convert Module ini + ajout de convert.ToInteger 2023-09-23 20:28:40 +02:00
datetime Corrections diverses : collection, datetime, ini 2024-03-04 09:20:42 +01:00
format Correction du package format 2024-02-25 18:03:01 +01:00
ini Corrections diverses : collection, datetime, ini 2024-03-04 09:20:42 +01:00
number Corrections diverses du package number + Ajout de stringers pour opition.Option et option.Choice 2024-02-25 14:30:50 +01:00
option Corrections diverses du package number + Ajout de stringers pour opition.Option et option.Choice 2024-02-25 14:30:50 +01:00
random Module random 2023-09-23 21:47:17 +02:00
secret Module secret 2023-09-23 22:15:37 +02:00
shell Module atom: correction + ajout de méthodes pour Buffer et State; Module scanner: ajout d’une fonction pour scanner les champs de manière brute 2024-03-02 14:26:17 +01:00
unidecode Module compare 2023-09-23 21:57:46 +02:00
.gitignore Ajout du répertoire test dans .gitignore 2023-09-23 18:47:00 +02:00
LICENSE Initial commit 2023-09-23 10:15:29 +00:00
README.md Màj du README 2024-02-17 19:06:37 +01:00
go.mod Màj des dépendances + ajout du module number 2024-02-17 19:00:25 +01:00
go.sum Màj des dépendances + ajout du module number 2024-02-17 19:00:25 +01:00

README.md

gob

Ensemble de librairies personnalisées en Go

Architecture

collection

Le paquet collection contient quelques fonctions utiles pour la gestion des slices (ajout, insertion, comparaison de slices, différence, intersection, conversion, map/reduce, etc.).

Il implémente également quelques collections non présentes, à lheure actuelle, dans la librairie standard :

  • Les piles : collection.Stack
  • Les files : collection.Queue
  • Les collections déléments uniques : collection.Set

collection/concurrent est une sous-bibliothèque pour alimenter les slices et les maps de manière concurrente et en toute sécurité.

collection/json permet de gérer des objets json (modification, parcours, import, export).

compare

Le paquet compare implémente différentes fonctions de comparaison de chaînes de caractères (insensible à la casse, tri naturel, prise en compte des accents, etc.), et permet daggréger plusieurs fonctions de comparaison.

convert

Le paquet convert fournit le nécessaire pour convertir des variables typées en dautres types de manière transparente. Types actuellement gérés :

  • Booléens,
  • Caractères (rune, byte),
  • Entiers (int, int8, int16, int32, int64, uint, uint8, uint16, uint62, uint64),
  • Nombres à virgule flottante (float32, float64),
  • Nombres complexes (complex64, complex128),
  • Chaînes de caractères,
  • Collections (slice, map),
  • Structures.

Tous ces types sont convertibles entre eux.

datetime

Le paquet datetime implémente des structures pour gérer des temps :

  • datetime.Clock : pour gérer une heure dans la journée,
  • datetime.Date : pour gérer une date, sans indication de lheure,
  • datetime.DateTime : pour gérer une date avec indication de lheure.
  • Range : pour gérer une période entre deux temps.

number

Le paquet number implémente une structure pour gérer des opérations sur les nombres réels.
Un nombre peut être présenté sous différentes formes (dans une base donnée) :

  • Format entier (ex: 58)
  • Format décimal (ex: 36.25)
  • Format scientifique (ex : 42.5E-18)
  • Fraction (ex : 12/5)

Un nombre peut être également indérminé (NaN, ±∞)

format

Le paquet format fournit le nécessaire pour formater la sortie terminal :

  • Alignement des entrées (utile pour afficher un tableau),
  • Couleurs et styles (gras, italique, etc.).

Seuls les terminaux supportant les chaînes déchappement ASCII sont supportés.

ini

Le paquet ini permet de parser et de gérer des fichiers de configuration (générations avec lextension .ini ou .conf).

option

Le paquet option implémente en Go les types Option et Result existant dans certains langages de programmation (comme Rust).

random

Le paquet random fournit des fonctions pour générer des variables avec des caractères aléatoires.

secret

Le paquet secret permet de générer des hashs ou de chiffrer des chaînes de caractères.

shell

Le paquet shell regroupe des sous-paquets dédiés à faciliter la programmation dapplications en ligne de commandes.

shell/command

shell/command définit des interfaces permettant de parser les arguments dune commande saisie. Une implémentation fonctionnelle est fournie dans le sous-paquet shell/command/flag.

shell/console

shell/console définit des interfaces dédiés à la programmation de CLI (Command Line Interface). Il fournit également des fonctions pour récupérer directement des entrées saisies dans le terminal dans des variables.

shell/file

shell/file permet de récupérer de façon détaillée les informations dun fichier ou dune arborescence de fichiers.

shell/scanner

shell/scanner fournit un outil pour découper une ou plusieurs lignes de caractères en mots selon des critères définis (chaîne déchappment, guillemets, etc.).