Skip to content

Commit e2abf76

Browse files
authored
Add pointer methods (#24)
1 parent 7d8d37a commit e2abf76

26 files changed

+487
-40
lines changed

bool.go

Lines changed: 18 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

byte.go

Lines changed: 18 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/optional/main.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,11 +146,28 @@ func New{{ .OutputName }}(v {{ .TypeName }}) {{ .OutputName }} {
146146
return {{ .OutputName }}{&v}
147147
}
148148
149+
// New{{ .OutputName }}FromPtr creates an optional.{{ .OutputName }} from a {{ .TypeName }} pointer.
150+
func New{{ .OutputName }}FromPtr(v *{{ .TypeName }}) {{ .OutputName }} {
151+
if v == nil {
152+
return {{ .OutputName }}{}
153+
}
154+
return New{{ .OutputName }}(*v)
155+
}
156+
149157
// Set sets the {{ .TypeName }} value.
150158
func ({{ .VariableName }} *{{ .OutputName }}) Set(v {{ .TypeName }}) {
151159
{{ .VariableName }}.value = &v
152160
}
153161
162+
// ToPtr returns a *{{ .TypeName }} of the value or nil if not present.
163+
func ({{ .VariableName }} {{ .OutputName }}) ToPtr() *{{ .TypeName }} {
164+
if !{{ .VariableName }}.Present() {
165+
return nil
166+
}
167+
v := *{{ .VariableName }}.value
168+
return &v
169+
}
170+
154171
// Get returns the {{ .TypeName }} value or an error if not present.
155172
func ({{ .VariableName }} {{ .OutputName }}) Get() ({{ .TypeName }}, error) {
156173
if !{{ .VariableName }}.Present() {

cmd/optional/testdata/optional_bar.go

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/optional/testdata/optional_foo.go

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/optional/testdata/string.go

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

complex128.go

Lines changed: 18 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

complex64.go

Lines changed: 18 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

error.go

Lines changed: 18 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

float32.go

Lines changed: 18 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

float64.go

Lines changed: 18 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)