Skip to content
This repository was archived by the owner on Oct 2, 2022. It is now read-only.

ContainerSSH - Launch Containers on Demand

ContainerSSH Struct Manipulation Library

⚠⚠⚠ Deprecated: ⚠⚠⚠
This repository is deprecated in favor of libcontainerssh for ContainerSSH 0.5.

This library provides methods for manipulating structs.

Copying structures

The structutils.Copy() method provides a deep-copy mechanism for structs:

oldData:=yourStruct{}
newData:=yourStruct{}
err:=structutils.Copy(&newData, &oldData)

The newData will be completely independent from oldData, including the copying of any pointers.

Merging structures

The structutils.Merge() method provides a deep merge of two structs:

oldData:=yourStruct{}
newData:=yourStruct{}
err:=structutils.Merge(newData, oldData)

The Merge method will copy non-default values from oldData to newData.

Adding default values

The structutils.Defaults() method loads the default values from the default tag in a struct:

typeyourStructstruct {
Textstring`default:"Hello world!"`Decisionbool`default:"true"`Numberint`default:"42"`
}
//...funcmain() {
data:=yourStruct{}
structutils.Defaults(&data)
// data will now contain the default values
}

Default values can be provided as follows:

  • Scalars can be provided directly.
  • Maps, structs, etc. can be provided in JSON format.
  • time.Duration can be provided in text format (e.g. 60s).
  • Structs may implement a receiver with the method called SetDefaults() as described in defaults.go.

About

Utility wrapper for structs for ContainerSSH

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages