input: Write a python function to implement a queue with enqueue, dequeue, peek, and size methods.
  assert q.size() == 0
  q.enqueue(5)
  q.enqueue(10)
  assert q.peek() == 5
  assert q.size() == 2
  assert q.dequeue() == 5
  assert q.size() == 1
output: class Queue:
      def __init__(self):
          self.items = []
      
      def enqueue(self, item):
          self.items.append(item)
          
      def dequeue(self):
          if not self.is_empty():
              return self.items.pop(0)
          return None
      
      def peek(self):
          if not self.is_empty():
              return self.items[0]
          return None
      
      def size(self):
          return len(self.items)
      
      def is_empty(self):
          return len(self.items) == 0
  
  # Example usage:
  q = Queue()
  assert q.size() == 0
  q.enqueue(5)
  q.enqueue(10)
  assert q.peek() == 5
  assert q.size() == 2
  assert q.dequeue() == 5
  assert q.size() == 1