using System.Collections.Generic; using Microsoft.Extensions.ObjectPool; using Ninject.Modules; 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.Ninject { public class NoStringNinjectModule : NinjectModule { public override void Load() { // Pooling Bind>>() .ToConstant(ObjectPool.Create>()) .InSingletonScope(); Bind>>() .ToConstant(ObjectPool.Create>()) .InSingletonScope(); Bind>() .ToConstant(ObjectPool.Create()) .InSingletonScope(); // Parser Bind().To().InSingletonScope(); Bind().To().InSingletonScope(); Bind().To().InSingletonScope(); // Checker Bind().To().InSingletonScope(); // Evaluator Bind().To().InSingletonScope(); } } }