diff options
author | Nick Thomas <nick@gitlab.com> | 2019-01-15 23:36:21 +0000 |
---|---|---|
committer | Nick Thomas <nick@gitlab.com> | 2019-01-15 23:36:21 +0000 |
commit | 1fcb56f42cdb2b6f562d8875abc4e33f7ef3e258 (patch) | |
tree | c246e5b43a1e7b5744e10e75d6ed125629f45936 /go/vendor/github.com/stretchr/objx/doc.go | |
parent | 6c5b195353a632095d7f672d28b9985fd879b077 (diff) | |
parent | d762f4ec9ea35cb00309b41ad60055cd3c5709ba (diff) | |
download | gitlab-shell-1fcb56f42cdb2b6f562d8875abc4e33f7ef3e258.tar.gz |
Merge branch 'bvl-feature-flag-commands' into 'master'
Parse commands to enable feature flags
See merge request gitlab-org/gitlab-shell!270
Diffstat (limited to 'go/vendor/github.com/stretchr/objx/doc.go')
-rw-r--r-- | go/vendor/github.com/stretchr/objx/doc.go | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/go/vendor/github.com/stretchr/objx/doc.go b/go/vendor/github.com/stretchr/objx/doc.go new file mode 100644 index 0000000..6d6af1a --- /dev/null +++ b/go/vendor/github.com/stretchr/objx/doc.go @@ -0,0 +1,66 @@ +/* +Objx - Go package for dealing with maps, slices, JSON and other data. + +Overview + +Objx provides the `objx.Map` type, which is a `map[string]interface{}` that exposes +a powerful `Get` method (among others) that allows you to easily and quickly get +access to data within the map, without having to worry too much about type assertions, +missing data, default values etc. + +Pattern + +Objx uses a preditable pattern to make access data from within `map[string]interface{}` easy. +Call one of the `objx.` functions to create your `objx.Map` to get going: + + m, err := objx.FromJSON(json) + +NOTE: Any methods or functions with the `Must` prefix will panic if something goes wrong, +the rest will be optimistic and try to figure things out without panicking. + +Use `Get` to access the value you're interested in. You can use dot and array +notation too: + + m.Get("places[0].latlng") + +Once you have sought the `Value` you're interested in, you can use the `Is*` methods to determine its type. + + if m.Get("code").IsStr() { // Your code... } + +Or you can just assume the type, and use one of the strong type methods to extract the real value: + + m.Get("code").Int() + +If there's no value there (or if it's the wrong type) then a default value will be returned, +or you can be explicit about the default value. + + Get("code").Int(-1) + +If you're dealing with a slice of data as a value, Objx provides many useful methods for iterating, +manipulating and selecting that data. You can find out more by exploring the index below. + +Reading data + +A simple example of how to use Objx: + + // Use MustFromJSON to make an objx.Map from some JSON + m := objx.MustFromJSON(`{"name": "Mat", "age": 30}`) + + // Get the details + name := m.Get("name").Str() + age := m.Get("age").Int() + + // Get their nickname (or use their name if they don't have one) + nickname := m.Get("nickname").Str(name) + +Ranging + +Since `objx.Map` is a `map[string]interface{}` you can treat it as such. +For example, to `range` the data, do what you would expect: + + m := objx.MustFromJSON(json) + for key, value := range m { + // Your code... + } +*/ +package objx |