mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-11 19:36:28 +00:00
Core - Refactor service registration
This commit is contained in:
1 parent
a1086df41a
commit
f2ef657d00
18 files changed
+234
-231
No files matched your search
@@ -0,0 +1,40 @@
|
||||
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;
|
||||
|
||||
/// <summary>
|
||||
/// Provides an extension method to register services onto a DryIoc <see cref="IContainer"/>.
|
||||
/// </summary>
|
||||
public static class UIContainerExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Registers NoStringEvaluating services into the container.
|
||||
/// </summary>
|
||||
/// <param name="container">The builder building the current container</param>
|
||||
public static void RegisterNoStringEvaluating(this IContainer container)
|
||||
{
|
||||
// Pooling
|
||||
container.RegisterInstance(ObjectPool.Create<Stack<InternalEvaluatorValue>>());
|
||||
container.RegisterInstance(ObjectPool.Create<List<InternalEvaluatorValue>>());
|
||||
container.RegisterInstance(ObjectPool.Create<ExtraTypeIdContainer>());
|
||||
|
||||
// Parser
|
||||
container.Register<IFormulaCache, FormulaCache>(Reuse.Singleton);
|
||||
container.Register<IFunctionReader, FunctionReader>(Reuse.Singleton);
|
||||
container.Register<IFormulaParser, FormulaParser>(Reuse.Singleton);
|
||||
|
||||
// Checker
|
||||
container.Register<IFormulaChecker, FormulaChecker>(Reuse.Singleton);
|
||||
|
||||
// Evaluator
|
||||
container.Register<INoStringEvaluator, NoStringEvaluator>(Reuse.Singleton);
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
using Artemis.Core.DryIoc;
|
||||
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;
|
||||
|
||||
public class NoStringDryIocModule : IModule
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public void Load(IRegistrator builder)
|
||||
{
|
||||
// Pooling
|
||||
builder.RegisterInstance(ObjectPool.Create<Stack<InternalEvaluatorValue>>());
|
||||
builder.RegisterInstance(ObjectPool.Create<List<InternalEvaluatorValue>>());
|
||||
builder.RegisterInstance(ObjectPool.Create<ExtraTypeIdContainer>());
|
||||
|
||||
// Parser
|
||||
builder.Register<IFormulaCache, FormulaCache>(Reuse.Singleton);
|
||||
builder.Register<IFunctionReader, FunctionReader>(Reuse.Singleton);
|
||||
builder.Register<IFormulaParser, FormulaParser>(Reuse.Singleton);
|
||||
|
||||
// Checker
|
||||
builder.Register<IFormulaChecker, FormulaChecker>(Reuse.Singleton);
|
||||
|
||||
// Evaluator
|
||||
builder.Register<INoStringEvaluator, NoStringEvaluator>(Reuse.Singleton);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user