// // 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); }