39 lines
825 B
Go
39 lines
825 B
Go
package robot
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
)
|
|
|
|
// parseLifespanImpl implements LifespanParser.
|
|
func LifespanParserHook(td string, attrs map[string]string) (LifespanData, error) {
|
|
target := ""
|
|
switch attrs["type"] {
|
|
case "SideBrush":
|
|
target = "side_brush"
|
|
case "Brush":
|
|
target = "main_brush"
|
|
case "DustCaseHeap":
|
|
target = "filter"
|
|
default:
|
|
return LifespanData{}, fmt.Errorf("unknown lifespan type %q", attrs["type"])
|
|
}
|
|
|
|
valStr := attrs["val"]
|
|
totalStr := attrs["total"]
|
|
val, err := strconv.Atoi(valStr)
|
|
if err != nil {
|
|
return LifespanData{}, fmt.Errorf("invalid lifespan val %q", valStr)
|
|
}
|
|
total, err := strconv.Atoi(totalStr)
|
|
if err != nil {
|
|
return LifespanData{}, fmt.Errorf("invalid lifespan total %q", totalStr)
|
|
}
|
|
|
|
return LifespanData{
|
|
Target: target,
|
|
Val: val,
|
|
Total: total,
|
|
}, nil
|
|
}
|