':param order: The order to match against
:type order: Order
:return: The proposed trades
:rtype: [ProposedTrade]'

def match_order(self, order):

    assert isinstance(order, Order), type(order)
    if order.is_ask():
        (quantity_to_trade, proposed_trades) = self._match_ask(order)
    else:
        (quantity_to_trade, proposed_trades) = self._match_bid(order)
    if (quantity_to_trade > Quantity(0, quantity_to_trade.wallet_id)):
        self._logger.debug('Quantity    not    matched:    %i', int(quantity_to_trade))
    return proposed_trades
