// Copyright (c) 2025-2026 GeWuYou
// SPDX-License-Identifier: Apache-2.0
namespace GFramework.Cqrs;
///
/// 描述单个 stream request/response 类型对与其 generated invoker 元数据之间的映射条目。
///
public sealed record CqrsStreamInvokerDescriptorEntry
{
///
/// 初始化 stream invoker 描述符映射条目。
///
/// 流式请求运行时类型。
/// 流式响应元素类型。
/// 对应的 generated stream invoker 描述符。
///
/// 当 、 或 为 时抛出。
///
public CqrsStreamInvokerDescriptorEntry(
Type requestType,
Type responseType,
CqrsStreamInvokerDescriptor descriptor)
{
RequestType = requestType ?? throw new ArgumentNullException(nameof(requestType));
ResponseType = responseType ?? throw new ArgumentNullException(nameof(responseType));
Descriptor = descriptor ?? throw new ArgumentNullException(nameof(descriptor));
}
///
/// 获取流式请求运行时类型。
///
public Type RequestType { get; }
///
/// 获取流式响应元素类型。
///
public Type ResponseType { get; }
///
/// 获取对应的 generated stream invoker 描述符。
///
public CqrsStreamInvokerDescriptor Descriptor { get; }
}