collection

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 8, 2020 License: MIT Imports: 7 Imported by: 3

README

collection

collection est une librairie Go pour manipuler des collections de variables

Installation

La librairie peut être installée dans le répertoire $GOPATH via la commande suivante :

go get framagit.org/benjamin.vaudour/collection

ou bien être utilisée directement dans un projet (nécessite Go ≥ 1.12) via un import :

import (
	"framagit.org/benjamin.vaudour/collection"
)

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Add

func Add(sl interface{}, args ...interface{}) (changed bool)

Add ajoute tous les arguments donnés au slice donné en entrée. Nota: sl doit être un pointeur de slice

func AddUniq

func AddUniq(sl interface{}, args ...interface{}) (changed bool)

AddUniq agit comme Add mais ne rajoute que des entrées non dupliquées (ie. non présentes dans le slice)

func Contains

func Contains(sl interface{}, args ...interface{}) bool

Contains vérifie que le slice donné en entrée contient au moins un des arguments spécifiés

func ContainsAll

func ContainsAll(sl interface{}, args ...interface{}) bool

ContainsAll vérifie que le slice donné en entrée contient tous les arguments spécifiés

func Delete

func Delete(sl interface{}, args ...interface{}) (changed bool)

Delete supprime tous les arguments donnés du slice Nota: sl doit être un pointeur de slice

func Insert

func Insert(sl interface{}, args ...interface{}) (changed bool)

Insert fonctionne comme Add à ceci près que les arguments sont ajoutés au début du slice

func InsertAt

func InsertAt(sl interface{}, pos int, args ...interface{}) (changed bool)

InsertAt fonctionne comme Insert à ceci près que les arguments sont ajoutés à la position donnée Si la position est ≤ 0, agit comme Insert Si la position est supérieur à la taille du slice, agit comme Add

func InsertUniq

func InsertUniq(sl interface{}, args ...interface{}) (changed bool)

InsertUniq agit comme AddUniq mais ajoute les entrées au début

func Slice

func Slice(sl interface{}) (out []interface{})

Slice convertit la variable donnée en paramètre en slice générique

func SliceOf

func SliceOf(e []interface{}, t reflect.Type) (v reflect.Value, ok bool)

SliceOf convertit un slice générique en empaqueteur de slice de type déterminé par le type t.

func SliceProperties

func SliceProperties(e interface{}) (v reflect.Value, t reflect.Type, ok bool)

SliceProperties retourne les propriétés du slice donné en entrée Si la variable d’entrée n’est pas un slice ou un pointeur de slice, retourne ok à false

Types

type Map

type Map map[string]interface{}

Map est un map de strings générique offrant des fonctions supplémentaires utiles

func (Map) Clone

func (m Map) Clone(deep ...bool) Map

Clone effectue une copie profonde de la map

func (Map) Decode

func (m Map) Decode(r io.Reader) (Map, error)

func (Map) Delete

func (m Map) Delete(keys ...string) Map

Delete supprime toutes les clés données en entrée

func (Map) Encode

func (m Map) Encode(w io.Writer) error

func (Map) EncodeHuman

func (m Map) EncodeHuman(w io.Writer) error

func (Map) Exists

func (m Map) Exists(k string) bool

Exists vérifie que la clé donnée en paramètre est contenue dans la map

func (Map) FormatBracket

func (m Map) FormatBracket() Map

FormatBracket convertit les clés récursives, si possible. Exemple: Soit une map ayant la représentation json suivante:

{
  "a[0]": "v1",
  "a[1]": "v2",
  "b[1][c]": "v3",
  "b[1][d]": "v4",
  "b[2]": "v5",
  "b": {
    "3[0]": "v6",
  }
}

Après formatage, la représentation sera la suivante:

{
  "a": [
    "v1",
    "v2"
  ],
  "b": {
    "1": {
      "c": "v3",
      "d": "v4"
    },
    "2": "v5",
    "3": [
      "v6"
    ]
  }
}

func (Map) FormatDot

func (m Map) FormatDot() Map

FormatDot convertit les clés récursives, si possible. Exemple: Soit une map ayant la représentation json suivante:

{
  "a.0": "v1",
  "a.1": "v2",
  "b.1.c": "v3",
  "b.1.d": "v4",
  "b.2": "v5",
  "b": {
    "3.0": "v6",
  }
}

Après formatage, la représentation sera la suivante:

{
  "a": [
    "v1",
    "v2"
  ],
  "b": {
    "1": {
      "c": "v3",
      "d": "v4"
    },
    "2": "v5",
    "3": [
      "v6"
    ]
  }
}

func (Map) Fusion

func (m1 Map) Fusion(m2 Map) Map

Fusion ajoute toutes les entrées de la map m2 dans la map m1 et retourne m1

func (Map) Get

func (m Map) Get(k string) interface{}

Get retourne la valeur de la clé donnée en paramètre Retourne nil si la clé n’existe pas

func (Map) GetBool

func (m Map) GetBool(k string) (out bool, ok bool)

GetBool retourne la valeur associée à la clé si celle-ci existe et est de type Bool

func (Map) GetBoolMap

func (m Map) GetBoolMap(k string) (out map[string]bool, ok bool)

GetBoolMap retourne la valeur associée à la clé si celle-ci existe et est de type map de Bool

func (Map) GetBoolSlice

func (m Map) GetBoolSlice(k string) (out []bool, ok bool)

GetBoolSlice retourne la valeur associée à la clé si celle-ci existe et est de type slice de Bool

func (Map) GetFloat

func (m Map) GetFloat(k string) (out float64, ok bool)

GetFloat retourne la valeur associée à la clé si celle-ci existe et est de type Float

func (Map) GetFloatMap

func (m Map) GetFloatMap(k string) (out map[string]float64, ok bool)

GetFloatMap retourne la valeur associée à la clé si celle-ci existe et est de type map de Float

func (Map) GetFloatSlice

func (m Map) GetFloatSlice(k string) (out []float64, ok bool)

GetFloatSlice retourne la valeur associée à la clé si celle-ci existe et est de type slice de Float

func (Map) GetInt

func (m Map) GetInt(k string) (out int, ok bool)

GetInt retourne la valeur associée à la clé si celle-ci existe et est de type Int

func (Map) GetIntMap

func (m Map) GetIntMap(k string) (out map[string]int, ok bool)

GetIntMap retourne la valeur associée à la clé si celle-ci existe et est de type map d’Int

func (Map) GetIntSlice

func (m Map) GetIntSlice(k string) (out []int, ok bool)

GetIntSlice retourne la valeur associée à la clé si celle-ci existe et est de type slice d’Int

func (Map) GetMap

func (m Map) GetMap(k string) (out Map, ok bool)

GetMap retourne la valeur associée à la clé si celle-ci existe et est de type map

func (Map) GetRecursive

func (m Map) GetRecursive(keys ...string) (v interface{}, ok bool)

GetRecursive recherche la valeur de la clé donnée de façon récursive

func (Map) GetRecursiveBracket

func (m Map) GetRecursiveBracket(k string) (interface{}, bool)

GetRecursiveBracket recherche la valeur de la clé donnée de façon récursive La clé peut être de la forme a[b][c]... : - Si la clé existe, retourne la valeur - Si la valeur de la clé 'a' est une map, réitère la recherche de la valeur sur b[c]... sur cette valeur - Sinon, retourne nil

func (Map) GetRecursiveDot

func (m Map) GetRecursiveDot(k string) (interface{}, bool)

GetRecursiveDot recherche la valeur de la clé donnée de façon récursive La clé peut être de la forme a.b.c... : - Si la clé existe, retourne la valeur - Si la valeur de la clé 'a' est une map, réitère la recherche de la valeur sur b.c... sur cette valeur - Sinon, retourne nil

func (Map) GetSlice

func (m Map) GetSlice(k string) (out []interface{}, ok bool)

GetSlice retourne la valeur associée à la clé si celle-ci existe et est de type slice

func (Map) GetString

func (m Map) GetString(k string) (out string, ok bool)

GetString retourne la valeur associée à la clé si celle-ci existe et est de type String

func (Map) GetStringMap

func (m Map) GetStringMap(k string) (out map[string]string, ok bool)

GetStringMap retourne la valeur associée à la clé si celle-ci existe et est de type map de String

func (Map) GetStringSlice

func (m Map) GetStringSlice(k string) (out []string, ok bool)

GetStringSlice retourne la valeur associée à la clé si celle-ci existe et est de type slice de String

func (Map) GetUint

func (m Map) GetUint(k string) (out uint, ok bool)

GetUint retourne la valeur associée à la clé si celle-ci existe et est de type Uint

func (Map) GetUintMap

func (m Map) GetUintMap(k string) (out map[string]uint, ok bool)

GetUintMap retourne la valeur associée à la clé si celle-ci existe et est de type map d’Uint

func (Map) GetUintSlice

func (m Map) GetUintSlice(k string) (out []uint, ok bool)

GetUintSlice retourne la valeur associée à la clé si celle-ci existe et est de type slice d’Uint

func (Map) Is

func (m Map) Is(k string, cb func(interface{}) bool) bool

func (Map) IsBool

func (m Map) IsBool(k string) bool

IsBool vérifie que la clé existe que sa valeur associée est de type Bool

func (Map) IsBoolMap

func (m Map) IsBoolMap(k string) bool

IsBoolMap vérifie que la clé existe que sa valeur associée est de type map de bool

func (Map) IsBoolSlice

func (m Map) IsBoolSlice(k string) bool

IsBoolSlice vérifie que la clé existe que sa valeur associée est de type slice de Bool

func (Map) IsFloat

func (m Map) IsFloat(k string) bool

IsFloat vérifie que la clé existe que sa valeur associée est de type Float

func (Map) IsFloatMap

func (m Map) IsFloatMap(k string) bool

IsFloatMap vérifie que la clé existe que sa valeur associée est de type map de Float

func (Map) IsFloatSlice

func (m Map) IsFloatSlice(k string) bool

IsFloatSlice vérifie que la clé existe que sa valeur associée est de type slice de Float

func (Map) IsInt

func (m Map) IsInt(k string) bool

IsInt vérifie que la clé existe que sa valeur associée est de type Int

func (Map) IsIntMap

func (m Map) IsIntMap(k string) bool

IsIntMap vérifie que la clé existe que sa valeur associée est de type map d’Int

func (Map) IsIntSlice

func (m Map) IsIntSlice(k string) bool

IsIntSlice vérifie que la clé existe que sa valeur associée est de type slice d’Int

func (Map) IsMap

func (m Map) IsMap(k string) bool

IsMap vérifie que la clé existe que sa valeur associée est de type map

func (Map) IsSlice

func (m Map) IsSlice(k string) bool

IsSlice vérifie que la clé existe que sa valeur associée est de type slice

func (Map) IsString

func (m Map) IsString(k string) bool

IsString vérifie que la clé existe que sa valeur associée est de type String

func (Map) IsStringMap

func (m Map) IsStringMap(k string) bool

IsStringMap vérifie que la clé existe que sa valeur associée est de type map de String

func (Map) IsStringSlice

func (m Map) IsStringSlice(k string) bool

IsStringSlice vérifie que la clé existe que sa valeur associée est de type slice de String

func (Map) IsUint

func (m Map) IsUint(k string) bool

IsInt vérifie que la clé existe que sa valeur associée est de type Uint

func (Map) IsUintMap

func (m Map) IsUintMap(k string) bool

IsUintMap vérifie que la clé existe que sa valeur associée est de type map d’Uint

func (Map) IsUintSlice

func (m Map) IsUintSlice(k string) bool

IsUintSlice vérifie que la clé existe que sa valeur associée est de type slice d’Uint

func (Map) Parse

func (m Map) Parse(e interface{}, keys ...string) bool

Parse agit comme ParseIfExact, à ceci près que si la valeur est trouvée, la conversion est forcée pour pouvoir modifier la valeur du pointeur.

func (Map) ParseIfExact

func (m Map) ParseIfExact(e interface{}, keys ...string) bool

ParseIfExact recherche une valeur de manière récursive et si elle la trouve et que e est un pointeur vers une variable équivalente à la variable trouve, la valeur du pointeur est modifiée.

func (Map) Set

func (m Map) Set(k string, v interface{}) Map

Set associe la clé k avec la valeur v dans la map

func (Map) SetIf

func (m Map) SetIf(k string, v interface{}, cb func() bool) Map

SetIf agit comme Set mais de façon conditionnelle

func (Map) SetIfNotExists

func (m Map) SetIfNotExists(k string, v interface{}) Map

SetIfNotExists agit comme Set que si la clé n’est pas définie dans la map

func (Map) SetRecursive

func (m Map) SetRecursive(v interface{}, keys ...string) Map

SetRecursive agit comme Set mais de façon récursive

func (Map) SetRecursiveBracket

func (m Map) SetRecursiveBracket(k string, v interface{}) Map

SetRecursiveBracket agit comme Set mais de façon récursive Une clé récursive est de la forme a[b][c]...

func (Map) SetRecursiveDot

func (m Map) SetRecursiveDot(k string, v interface{}) Map

SetRecursiveDot agit comme Set mais de façon récursive Une clé récursive est de la forme a.b.c...

func (Map) ToBool

func (m Map) ToBool(k string, def ...bool) (out bool)

ToBool retourne la valeur associée la clé convertie en Bool Si la clé n’existe pas ou que la valeur n’est pas convertible, retourne l’éventuelle valeur donnée par défaut

func (Map) ToBoolMap

func (m Map) ToBoolMap(k string, def ...map[string]bool) (out map[string]bool)

ToBoolMap retourne la valeur associée la clé convertie en map de Bool Si la clé n’existe pas ou que la valeur n’est pas convertible, retourne l’éventuelle valeur donnée par défaut

func (Map) ToBoolSlice

func (m Map) ToBoolSlice(k string, def ...bool) (out []bool)

ToBoolSlice retourne la valeur associée la clé convertie en slice de Bool Si la clé n’existe pas ou que la valeur n’est pas convertible, retourne l’éventuelle valeur donnée par défaut

func (Map) ToFloat

func (m Map) ToFloat(k string, def ...float64) (out float64)

ToFloat retourne la valeur associée la clé convertie en Float Si la clé n’existe pas ou que la valeur n’est pas convertible, retourne l’éventuelle valeur donnée par défaut

func (Map) ToFloatMap

func (m Map) ToFloatMap(k string, def ...map[string]float64) (out map[string]float64)

ToFloatMap retourne la valeur associée la clé convertie en map de Float Si la clé n’existe pas ou que la valeur n’est pas convertible, retourne l’éventuelle valeur donnée par défaut

func (Map) ToFloatSlice

func (m Map) ToFloatSlice(k string, def ...float64) (out []float64)

ToFloatSlice retourne la valeur associée la clé convertie en slice de Float Si la clé n’existe pas ou que la valeur n’est pas convertible, retourne l’éventuelle valeur donnée par défaut

func (Map) ToInt

func (m Map) ToInt(k string, def ...int) (out int)

ToInt retourne la valeur associée la clé convertie en Int Si la clé n’existe pas ou que la valeur n’est pas convertible, retourne l’éventuelle valeur donnée par défaut

func (Map) ToIntMap

func (m Map) ToIntMap(k string, def ...map[string]int) (out map[string]int)

ToIntMap retourne la valeur associée la clé convertie en map d’Int Si la clé n’existe pas ou que la valeur n’est pas convertible, retourne l’éventuelle valeur donnée par défaut

func (Map) ToIntSlice

func (m Map) ToIntSlice(k string, def ...int) (out []int)

ToIntSlice retourne la valeur associée la clé convertie en slice d’Int Si la clé n’existe pas ou que la valeur n’est pas convertible, retourne l’éventuelle valeur donnée par défaut

func (Map) ToMap

func (m Map) ToMap(k string, def ...Map) (out Map)

ToMap retourne la valeur associée la clé convertie en map Si la clé n’existe pas ou que la valeur n’est pas convertible, retourne l’éventuelle valeur donnée par défaut

func (Map) ToSlice

func (m Map) ToSlice(k string, def ...interface{}) (out []interface{})

ToSlice retourne la valeur associée la clé convertie en slice Si la clé n’existe pas ou que la valeur n’est pas convertible, retourne l’éventuelle valeur donnée par défaut

func (Map) ToString

func (m Map) ToString(k string, def ...string) (out string)

ToString retourne la valeur associée la clé convertie en String Si la clé n’existe pas ou que la valeur n’est pas convertible, retourne l’éventuelle valeur donnée par défaut

func (Map) ToStringMap

func (m Map) ToStringMap(k string, def ...map[string]string) (out map[string]string)

ToStringMap retourne la valeur associée la clé convertie en map de String Si la clé n’existe pas ou que la valeur n’est pas convertible, retourne l’éventuelle valeur donnée par défaut

func (Map) ToStringSlice

func (m Map) ToStringSlice(k string, def ...string) (out []string)

ToStringSlice retourne la valeur associée la clé convertie en slice de string Si la clé n’existe pas ou que la valeur n’est pas convertible, retourne l’éventuelle valeur donnée par défaut

func (Map) ToUint

func (m Map) ToUint(k string, def ...uint) (out uint)

ToUint retourne la valeur associée la clé convertie en Uint Si la clé n’existe pas ou que la valeur n’est pas convertible, retourne l’éventuelle valeur donnée par défaut

func (Map) ToUintMap

func (m Map) ToUintMap(k string, def ...map[string]uint) (out map[string]uint)

ToUintMap retourne la valeur associée la clé convertie en map d’Uint Si la clé n’existe pas ou que la valeur n’est pas convertible, retourne l’éventuelle valeur donnée par défaut

func (Map) ToUintSlice

func (m Map) ToUintSlice(k string, def ...uint) (out []uint)

ToUintSlice retourne la valeur associée la clé convertie en slice d’Uint Si la clé n’existe pas ou que la valeur n’est pas convertible, retourne l’éventuelle valeur donnée par défaut

type MapDecoder

type MapDecoder struct {
	// contains filtered or unexported fields
}

func NewMapDecoder

func NewMapDecoder(r io.Reader) *MapDecoder

func (*MapDecoder) Decode

func (dec *MapDecoder) Decode() (m Map, err error)

func (*MapDecoder) DecodeSlice

func (dec *MapDecoder) DecodeSlice() (sl SliceMap, err error)

type MapEncoder

type MapEncoder struct {
	// contains filtered or unexported fields
}

func NewMapEncoder

func NewMapEncoder(w io.Writer) *MapEncoder

func (*MapEncoder) Encode

func (enc *MapEncoder) Encode(m Map) error

func (*MapEncoder) EncodeSlice

func (enc *MapEncoder) EncodeSlice(sl SliceMap) error

func (*MapEncoder) SetEscapeHTML

func (enc *MapEncoder) SetEscapeHTML(on bool)

func (*MapEncoder) SetIndent

func (enc *MapEncoder) SetIndent(prefix, indent string)

type Set

type Set map[interface{}]bool

Set est une collection de variables uniques

func NewSet

func NewSet(args ...interface{}) Set

NewSet retourne un set initialisé par les variables données en entrée

func SliceToSet

func SliceToSet(e interface{}) (s Set, ok bool)

SlicetoSet convertit un slice en un set.

func (Set) Add

func (s Set) Add(args ...interface{}) Set

Add ajoute au set les variables données en paramètre

func (Set) Contains

func (s Set) Contains(args ...interface{}) bool

Contains vérifie que le set contient au moins une des variables données en paramètre

func (Set) ContainsAll

func (s Set) ContainsAll(args ...interface{}) bool

ContainsAll vérifie que le set contient toutes les variables données en paramètre

func (Set) Del

func (s Set) Del(args ...interface{}) Set

Del supprime du set les variables données en paramètre

func (Set) Len

func (s Set) Len() int

Len retourne le nombre de variables contenues dans le set

func (Set) Slice

func (s Set) Slice() []interface{}

Slice retourne un slice avec toutes les entrées du set

type SliceMap

type SliceMap []Map

SliceMap est un tableau de maps

func (*SliceMap) Add

func (sl *SliceMap) Add(maps ...Map) SliceMap

func (*SliceMap) Decode

func (sl *SliceMap) Decode(r io.Reader) (SliceMap, error)

func (SliceMap) Encode

func (sl SliceMap) Encode(w io.Writer) error

func (SliceMap) EncodeHuman

func (sl SliceMap) EncodeHuman(w io.Writer) error

func (*SliceMap) Insert

func (sl *SliceMap) Insert(maps ...Map) SliceMap

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL