input: Write a function to calculate the total cost of a shopping cart, considering the item prices, quantity, shipping cost, and any applicable taxes. The function should take a list of items, each represented as a dictionary with 'name', 'price', and 'quantity' keys, and return the total cost.
  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) == 106.6875
  assert calculate_total_cost([], 0, 0) == 0
  assert calculate_total_cost([
      {"name": "item1", "price": 20, "quantity": 2},
      {"name": "item2", "price": 15, "quantity": 3}
  ], 5.00, 0.10) == 90.5
output: def calculate_total_cost(items, shipping_cost, tax_rate):
      subtotal = sum(item['price'] * item['quantity'] for item in items)
      total_cost = subtotal + shipping_cost
      total_cost += total_cost * tax_rate
      return total_cost