type thinLsClient … // newThinLsClient returns a thinLsClient or an error if the thin_ls binary // couldn't be located. func newThinLsClient() (thinLsClient, error) { … } type defaultThinLsClient … var _ … func (c *defaultThinLsClient) ThinLs(deviceName string) (map[string]uint64, error) { … } // parseThinLsOutput parses the output returned by thin_ls to build a map of // device id -> usage. func parseThinLsOutput(output []byte) map[string]uint64 { … }