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); } }