Files
git.stella-ops.org/src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Normalization/ServiceCollectionExtensions.cs
StellaOps Bot ca578801fd save progress
2026-01-03 00:49:19 +02:00

52 lines
1.8 KiB
C#

// Copyright (c) StellaOps. All rights reserved.
// Licensed under AGPL-3.0-or-later. See LICENSE in the project root.
using Microsoft.Extensions.DependencyInjection;
using StellaOps.BinaryIndex.Normalization.Arm64;
using StellaOps.BinaryIndex.Normalization.X64;
namespace StellaOps.BinaryIndex.Normalization;
/// <summary>
/// Extension methods for registering normalization services.
/// </summary>
public static class ServiceCollectionExtensions
{
/// <summary>
/// Adds normalization pipeline services to the service collection.
/// </summary>
/// <param name="services">The service collection.</param>
/// <returns>The service collection for chaining.</returns>
public static IServiceCollection AddNormalizationPipelines(this IServiceCollection services)
{
// Register individual pipelines
services.AddSingleton<INormalizationPipeline, X64NormalizationPipeline>();
services.AddSingleton<INormalizationPipeline, Arm64NormalizationPipeline>();
// Register the service that manages pipelines
services.AddSingleton<NormalizationService>();
return services;
}
/// <summary>
/// Adds only x86/x64 normalization pipeline.
/// </summary>
public static IServiceCollection AddX64Normalization(this IServiceCollection services)
{
services.AddSingleton<INormalizationPipeline, X64NormalizationPipeline>();
services.AddSingleton<NormalizationService>();
return services;
}
/// <summary>
/// Adds only ARM64 normalization pipeline.
/// </summary>
public static IServiceCollection AddArm64Normalization(this IServiceCollection services)
{
services.AddSingleton<INormalizationPipeline, Arm64NormalizationPipeline>();
services.AddSingleton<NormalizationService>();
return services;
}
}