// 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;
///
/// Extension methods for registering normalization services.
///
public static class ServiceCollectionExtensions
{
///
/// Adds normalization pipeline services to the service collection.
///
/// The service collection.
/// The service collection for chaining.
public static IServiceCollection AddNormalizationPipelines(this IServiceCollection services)
{
// Register individual pipelines
services.AddSingleton();
services.AddSingleton();
// Register the service that manages pipelines
services.AddSingleton();
return services;
}
///
/// Adds only x86/x64 normalization pipeline.
///
public static IServiceCollection AddX64Normalization(this IServiceCollection services)
{
services.AddSingleton();
services.AddSingleton();
return services;
}
///
/// Adds only ARM64 normalization pipeline.
///
public static IServiceCollection AddArm64Normalization(this IServiceCollection services)
{
services.AddSingleton();
services.AddSingleton();
return services;
}
}