// IResourceTool.cs
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: 2025 Catswords OSS and WelsonJS Contributors
// https://github.com/gnh1201/welsonjs
//
using System.Net;
using System.Threading.Tasks;
namespace WelsonJS.Launcher
{
///
/// Defines a contract for resource tools that can handle specific HTTP requests.
///
public interface IResourceTool
{
///
/// Determines whether this tool can handle the specified path.
///
/// The request path to check.
/// True if this tool can handle the request; otherwise, false.
bool CanHandle(string path);
///
/// Asynchronously processes the HTTP request for the specified path.
///
/// The HTTP listener context containing request and response objects.
/// The request path to handle.
/// A task representing the asynchronous operation.
Task HandleAsync(HttpListenerContext context, string path);
}
}