input: Write a function to calculate the total cost of a shopping cart given a list of items with their prices and quantities, as well as the shipping cost and tax rate. Return the total cost after applying taxes and adding the shipping cost. If the input list is empty, return 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) == 109.625
  assert calculate_total_cost([{"name": "widget", "price": 10, "quantity": 1}], 5.00, 0.1) == 16.0
  assert calculate_total_cost([], 10.00, 0.08) == 0
output: def calculate_total_cost(items, shipping_cost, tax_rate):
      if not items:
          return 0
      subtotal = sum(item["price"] * item["quantity"] for item in items)
      total_cost = subtotal + shipping_cost
      total_cost += total_cost * tax_rate
      return total_cost