# Source code for bleak.args

    import sys
    from collections.abc import Sized
    from typing import Protocol

    if sys.version_info < (3, 12):
        # mypy and pyright object to Buffer being both ABC and Protocol. Work around
        # by just inheriting from Protocol here. typing_extensions.Buffer is just
        # abc.ABC.
        class BufferProtocol(Protocol):
            def __buffer__(self, flags: int, /) -> memoryview: ...

    else:
        from collections.abc import Buffer as BufferProtocol

    class SizedBuffer(BufferProtocol, Sized, Protocol):
        """
        Protocol for types that are both Buffer and Sized.

        .. versionadded:: 2.1
        """