func decodeConsumedCapacityExtended()

in dax/internal/client/response.go [1243:1306]


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

	cc := &types.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.TableName = &s
		case capacityUnits:
			f, err := reader.ReadFloat64()
			if err != nil {
				return err
			}
			cc.CapacityUnits = &f
		case readCapacityUnits:
			f, err := reader.ReadFloat64()
			if err != nil {
				return err
			}
			cc.ReadCapacityUnits = &f
		case writeCapacityUnits:
			f, err := reader.ReadFloat64()
			if err != nil {
				return err
			}
			cc.WriteCapacityUnits = &f
		case table:
			c, err := decodeCapacity(reader)
			if err != nil {
				return err
			}
			cc.Table = c
		case globalSecondaryIndexes:
			c, err := decodeIndexConsumedCapacity(reader, true)
			if err != nil {
				return err
			}
			cc.GlobalSecondaryIndexes = c
		case localSecondaryIndexes:
			c, err := decodeIndexConsumedCapacity(reader, true)
			if err != nil {
				return err
			}
			cc.LocalSecondaryIndexes = c
		default:
			return &smithy.SerializationError{Err: fmt.Errorf("unknown response param key %d", key)}
		}
		return nil
	})
	if err != nil {
		return nil, err
	}
	return cc, nil
}