package value import ( "fmt" "time" "gitoa.ru/go-4devs/console/input/errs" ) var ( _ Value = Read{} _ Value = Slice{} ) var ErrWrongType = errs.ErrWrongType type Read struct { ParseValue } func (r Read) String() string { sout, _ := r.ParseValue.ParseString() return sout } func (r Read) Int() int { iout, _ := r.ParseValue.ParseInt() return iout } func (r Read) Int64() int64 { iout, _ := r.ParseValue.ParseInt64() return iout } func (r Read) Uint() uint { uout, _ := r.ParseValue.ParseUint() return uout } func (r Read) Uint64() uint64 { uout, _ := r.ParseValue.ParseUint64() return uout } func (r Read) Float64() float64 { fout, _ := r.ParseValue.ParseFloat64() return fout } func (r Read) Bool() bool { bout, _ := r.ParseValue.ParseBool() return bout } func (r Read) Duration() time.Duration { dout, _ := r.ParseValue.ParseDuration() return dout } func (r Read) Time() time.Time { tout, _ := r.ParseValue.ParseTime() return tout } func (r Read) Strings() []string { return []string{r.String()} } func (r Read) Ints() []int { return []int{r.Int()} } func (r Read) Int64s() []int64 { return []int64{r.Int64()} } func (r Read) Uints() []uint { return []uint{r.Uint()} } func (r Read) Uint64s() []uint64 { return []uint64{r.Uint64()} } func (r Read) Float64s() []float64 { return []float64{r.Float64()} } func (r Read) Bools() []bool { return []bool{r.Bool()} } func (r Read) Durations() []time.Duration { return []time.Duration{r.Duration()} } func (r Read) Times() []time.Time { return []time.Time{r.Time()} } type Slice struct { SliceValue } func (s Slice) String() string { return "" } func (s Slice) Int() int { return 0 } func (s Slice) Int64() int64 { return 0 } func (s Slice) Uint() uint { return 0 } func (s Slice) Uint64() uint64 { return 0 } func (s Slice) Float64() float64 { return 0 } func (s Slice) Bool() bool { return false } func (s Slice) Duration() time.Duration { return 0 } func (s Slice) Time() time.Time { return time.Time{} } func (s Slice) wrongType() error { return fmt.Errorf("%w: for %T", ErrWrongType, s.SliceValue) } func (s Slice) ParseString() (string, error) { return "", s.wrongType() } func (s Slice) ParseInt() (int, error) { return 0, s.wrongType() } func (s Slice) ParseInt64() (int64, error) { return 0, s.wrongType() } func (s Slice) ParseUint() (uint, error) { return 0, s.wrongType() } func (s Slice) ParseUint64() (uint64, error) { return 0, s.wrongType() } func (s Slice) ParseFloat64() (float64, error) { return 0, s.wrongType() } func (s Slice) ParseBool() (bool, error) { return false, s.wrongType() } func (s Slice) ParseDuration() (time.Duration, error) { return 0, s.wrongType() } func (s Slice) ParseTime() (time.Time, error) { return time.Time{}, s.wrongType() }