def store_checkpoint(
        self,
        checkpoint_name: str,
        checkpoint_writer: Callable[[Union[BinaryIO, IO[bytes]]], None],
    ) -> None:
        """
        Stores a checkpoint.

        This method expects a checkpoint name and a callable.

        The callable must accept a file-like object as input. The file-like
        object is created by the checkpoint storage (this object) and it will
        accept binary write operations to store the byte representation of the
        checkpoint.

        :param checkpoint_name: The name of the checkpoint.
        :param checkpoint_writer: A callable that accepts a writable file-like
            object. The callable must write the checkpoint to the provided file
            object.
        :return: None. It will raise an exception if the checkpoint cannot be
            loaded, depending on the specific implementation.
        """
        pass

        Stores a checkpoint.

        This method expects a checkpoint name and a callable.

        The callable must accept a file-like object as input. The file-like
        object is created by the checkpoint storage (this object) and it will
        accept binary write operations to store the byte representation of the
        checkpoint.

        :param checkpoint_name: The name of the checkpoint.
        :param checkpoint_writer: A callable that accepts a writable file-like
            object. The callable must write the checkpoint to the provided file
            object.
        :return: None. It will raise an exception if the checkpoint cannot be
            loaded, depending on the specific implementation.
        
avalanche/training/plugins/checkpoint.py