input: Write a function to calculate the total cost of a shopping cart. The function should consider the item prices, quantity, shipping cost, and any applicable taxes. The function should return the total cost as a float. If the shopping cart is empty, the function should return 0.0.
  assert calculate_total_cost([{"name": "widget", "price": 10, "quantity": 5 }, {"name": "thingy", "price": 7, "quantity": 3 }, {"name": "doodad", "price": 5, "quantity": 2 }], 7.50, 0.095)==112.825
  assert calculate_total_cost([], 5.0, 0.0)==0.0
  assert calculate_total_cost([{"name": "item1", "price": 20, "quantity": 2 }], 5.0, 0.10)==54.0
  assert calculate_total_cost([{"name": "item1", "price": 20, "quantity": 2 }, {"name": "item2", "price": 10, "quantity": 1 }], 10.0, 0.15)==60.0
  assert calculate_total_cost([{"name": "item1", "price": 20, "quantity": 0 }, {"name": "item2", "price": 10, "quantity": 1 }], 10.0, 0.15)==23.5
output: def calculate_total_cost(cart, shipping_cost, tax_rate):
      if not cart:
          return 0.0
      subtotal = sum(item['price'] * item['quantity'] for item in cart)
      total_cost = subtotal + shipping_cost
      total_cost *= (1 + tax_rate)
      return total_cost