@classmethod
def from_value(cls, value):
    """
        Convert a value of type :class:`tuple` to a :class:`~benker.size.Size` tuple.

        :param value: tuple of two integers or :class:`~benker.size.Size` tuple.

        :return: Newly created object.

        :raises TypeError:
            if the value is not a tuple of integers nor a :class:`~benker.size.Size` tuple.
        """
    value_type = type(value)
    if value_type is cls:
        return value
    elif value_type is tuple and tuple(map(type, value)) == (int, int):
        return cls(*value)
    raise TypeError(repr(value_type))
