code: def get_size(self, value=None):
          
          if value is None:
              if not self:
                  # If this is a empty list, then returns zero
                  return 0
              elif issubclass(type(self[0]), GenericType):
                  # If the type of the elements is GenericType, then returns the
                  # length of the list multiplied by the size of the GenericType.
                  return len(self) * self[0].get_size()
  
              # Otherwise iter over the list accumulating the sizes.
              return sum(item.get_size() for item in self)
  
          return type(self)(value).get_size()
docs: Return the size in bytes.
  
          Args:
              value: In structs, the user can assign other value instead of
                  this class' instance. Here, in such cases, ``self`` is a class
                  attribute of the struct.
  
          Returns:
              int: The size in bytes.