using DryIoc;
using Microsoft.Extensions.ObjectPool;
using NoStringEvaluating;
using NoStringEvaluating.Contract;
using NoStringEvaluating.Models.Values;
using NoStringEvaluating.Services.Cache;
using NoStringEvaluating.Services.Checking;
using NoStringEvaluating.Services.Parsing;
using NoStringEvaluating.Services.Parsing.NodeReaders;
namespace Artemis.VisualScripting.DryIoc;
///
/// Provides an extension method to register services onto a DryIoc .
///
public static class ContainerExtensions
{
///
/// Registers NoStringEvaluating services into the container.
///
/// The builder building the current container
public static void RegisterNoStringEvaluating(this IContainer container)
{
// Pooling
container.RegisterInstance(ObjectPool.Create>());
container.RegisterInstance(ObjectPool.Create>());
container.RegisterInstance(ObjectPool.Create());
// Parser
container.Register(Reuse.Singleton);
container.Register(Reuse.Singleton);
container.Register(Reuse.Singleton);
// Checker
container.Register(Reuse.Singleton);
// Evaluator
container.Register(Reuse.Singleton);
}
}