func set(client keyvalue.TChanKeyValue, key, value string) { ctx, cancel := createContext() defer cancel() if err := client.Set(ctx, key, value); err != nil { switch err := err.(type) { case *keyvalue.InvalidKey: log.Printf("Set %v failed: invalid key", key) default: log.Printf("Set %v:%v failed unexpectedly: %#v", key, value, err) } return } log.Printf("Set %v:%v succeeded with headers: %v", key, value, ctx.ResponseHeaders()) }