func decodeConsumedCapacityExtended()

in dax/internal/client/response.go [1234:1297]


func decodeConsumedCapacityExtended(reader *cbor.Reader) (*dynamodb.ConsumedCapacity, error) {
	consumed, err := consumeNil(reader)
	if err != nil {
		return nil, err
	}
	if consumed {
		return nil, nil
	}

	cc := &dynamodb.ConsumedCapacity{}
	err = consumeMap(reader, func(key int, reader *cbor.Reader) error {
		switch key {
		case tableName:
			s, err := reader.ReadString()
			if err != nil {
				return err
			}
			cc.SetTableName(s)
		case capacityUnits:
			f, err := reader.ReadFloat64()
			if err != nil {
				return err
			}
			cc.SetCapacityUnits(f)
		case readCapacityUnits:
			f, err := reader.ReadFloat64()
			if err != nil {
				return err
			}
			cc.SetReadCapacityUnits(f)
		case writeCapacityUnits:
			f, err := reader.ReadFloat64()
			if err != nil {
				return err
			}
			cc.SetWriteCapacityUnits(f)
		case table:
			c, err := decodeCapacity(reader)
			if err != nil {
				return err
			}
			cc.SetTable(c)
		case globalSecondaryIndexes:
			c, err := decodeIndexConsumedCapacity(reader, true)
			if err != nil {
				return err
			}
			cc.SetGlobalSecondaryIndexes(c)
		case localSecondaryIndexes:
			c, err := decodeIndexConsumedCapacity(reader, true)
			if err != nil {
				return err
			}
			cc.SetLocalSecondaryIndexes(c)
		default:
			return awserr.New(request.ErrCodeSerialization, fmt.Sprintf("unknown response param key %d", key), nil)
		}
		return nil
	})
	if err != nil {
		return nil, err
	}
	return cc, nil
}