mirror of
https://github.com/phishingclub/phishingclub.git
synced 2026-02-12 16:12:44 +00:00
49 lines
1.7 KiB
Markdown
49 lines
1.7 KiB
Markdown
# oapi-codegen/nullable
|
|
|
|
> An implementation of a `Nullable` type for JSON bodies, indicating whether the field is absent, set to null, or set to a value
|
|
|
|
Unlike other known implementations, this makes it possible to both marshal and unmarshal the value, as well as represent all three states:
|
|
|
|
- the field is _not set_
|
|
- the field is _explicitly set to null_
|
|
- the field is _explicitly set to a given value_
|
|
|
|
And can be embedded in structs, for instance with the following definition:
|
|
|
|
```go
|
|
obj := struct {
|
|
// RequiredID is a required, nullable field
|
|
RequiredID nullable.Nullable[int] `json:"id"`
|
|
// OptionalString is an optional, nullable field
|
|
// NOTE that no pointer is required, only `omitempty`
|
|
OptionalString nullable.Nullable[string] `json:"optionalString,omitempty"`
|
|
}{}
|
|
```
|
|
|
|
## Usage
|
|
|
|
> [!IMPORTANT]
|
|
> Although this project is under the [oapi-codegen org](https://github.com/oapi-codegen) for the `oapi-codegen` OpenAPI-to-Go code generator, this is intentionally released as a separate, standalone library which can be used by other projects.
|
|
|
|
First, add to your project with:
|
|
|
|
```sh
|
|
go get github.com/oapi-codegen/nullable
|
|
```
|
|
|
|
Check out the examples in [the package documentation on pkg.go.dev](https://pkg.go.dev/github.com/oapi-codegen/nullable) for more details.
|
|
|
|
## Credits
|
|
|
|
- [KumanekoSakura](https://github.com/KumanekoSakura), [via](https://github.com/golang/go/issues/64515#issuecomment-1842973794)
|
|
- [Sebastien Guilloux](https://github.com/sebgl), [via](https://github.com/sebgl/nullable/)
|
|
|
|
As well as contributions from:
|
|
|
|
- [Jamie Tanna](https://www.jvt.me)
|
|
- [Ashutosh Kumar](https://github.com/sonasingh46)
|
|
|
|
## License
|
|
|
|
Licensed under the Apache-2.0 license.
|