c40779224f
Fixes #52
29 lines
504 B
Go
29 lines
504 B
Go
package main
|
|
|
|
import (
|
|
"errors"
|
|
"strings"
|
|
)
|
|
|
|
// StringService provides operations on strings.
|
|
type StringService interface {
|
|
Uppercase(string) (string, error)
|
|
Count(string) int
|
|
}
|
|
|
|
type stringService struct{}
|
|
|
|
func (stringService) Uppercase(s string) (string, error) {
|
|
if s == "" {
|
|
return "", ErrEmpty
|
|
}
|
|
return strings.ToUpper(s), nil
|
|
}
|
|
|
|
func (stringService) Count(s string) int {
|
|
return len(s)
|
|
}
|
|
|
|
// ErrEmpty is returned when an input string is empty.
|
|
var ErrEmpty = errors.New("empty string")
|