//
//  ICommandHandler.cs
//
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.
using System.Threading;
using System.Threading.Tasks;
using Remora.Results;
namespace NosSmooth.Core.Commands;
/// 
/// Represents interface for command handlers that process .
/// 
public interface ICommandHandler
{
}
/// 
/// Represents interface of class that handles  of type .
/// 
/// The command type that this handler can execute.
public interface ICommandHandler : ICommandHandler
    where TCommand : ICommand
{
    /// 
    /// Execute the given command.
    /// 
    /// The command to execute.
    /// The cancellation token for cancelling the operation.
    /// A result that may or may not have succeeded.
    public Task HandleCommand(TCommand command, CancellationToken ct = default);
}