github.com/vmware/govmomi@v0.51.0/cli/flags/optional_string.go (about) 1 // © Broadcom. All Rights Reserved. 2 // The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. 3 // SPDX-License-Identifier: Apache-2.0 4 5 package flags 6 7 import ( 8 "flag" 9 ) 10 11 type optionalString struct { 12 val **string 13 } 14 15 func (s *optionalString) Set(input string) error { 16 *s.val = &input 17 return nil 18 } 19 20 func (s *optionalString) Get() any { 21 if *s.val == nil { 22 return nil 23 } 24 return **s.val 25 } 26 27 func (s *optionalString) String() string { 28 if s.val == nil || *s.val == nil { 29 return "<nil>" 30 } 31 return **s.val 32 } 33 34 // NewOptionalString returns a flag.Value implementation where there is no default value. 35 // This avoids sending a default value over the wire as using flag.StringVar() would. 36 func NewOptionalString(v **string) flag.Value { 37 return &optionalString{v} 38 }