mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-08-23 13:07:07 +01:00
Use FrozenDictionary where appropriate
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Frozen;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
@@ -15,15 +15,15 @@ namespace Tgstation.Server.Host.Components.Engine
|
||||
sealed class DelegatingEngineInstaller : IEngineInstaller
|
||||
{
|
||||
/// <summary>
|
||||
/// The <see cref="IReadOnlyDictionary{TKey, TValue}"/> mapping <see cref="EngineType"/>s to their appropriate <see cref="IEngineInstaller"/>.
|
||||
/// The <see cref="FrozenDictionary{TKey, TValue}"/> mapping <see cref="EngineType"/>s to their appropriate <see cref="IEngineInstaller"/>.
|
||||
/// </summary>
|
||||
readonly IReadOnlyDictionary<EngineType, IEngineInstaller> delegatedInstallers;
|
||||
readonly FrozenDictionary<EngineType, IEngineInstaller> delegatedInstallers;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="DelegatingEngineInstaller"/> class.
|
||||
/// </summary>
|
||||
/// <param name="delegatedInstallers">The value of <see cref="delegatedInstallers"/>.</param>
|
||||
public DelegatingEngineInstaller(IReadOnlyDictionary<EngineType, IEngineInstaller> delegatedInstallers)
|
||||
public DelegatingEngineInstaller(FrozenDictionary<EngineType, IEngineInstaller> delegatedInstallers)
|
||||
{
|
||||
this.delegatedInstallers = delegatedInstallers ?? throw new ArgumentNullException(nameof(delegatedInstallers));
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Frozen;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Threading.Tasks;
|
||||
@@ -380,12 +381,13 @@ namespace Tgstation.Server.Host.Core
|
||||
openDreamRepositoryDirectory),
|
||||
new NoopEventConsumer()));
|
||||
|
||||
services.AddSingleton<IReadOnlyDictionary<EngineType, IEngineInstaller>>(
|
||||
services.AddSingleton(
|
||||
serviceProvider => new Dictionary<EngineType, IEngineInstaller>
|
||||
{
|
||||
{ EngineType.Byond, serviceProvider.GetRequiredService<ByondInstallerBase>() },
|
||||
{ EngineType.OpenDream, serviceProvider.GetRequiredService<OpenDreamInstaller>() },
|
||||
});
|
||||
}
|
||||
.ToFrozenDictionary());
|
||||
services.AddSingleton<IEngineInstaller, DelegatingEngineInstaller>();
|
||||
|
||||
if (postSetupServices.InternalConfiguration.UsingSystemD)
|
||||
|
||||
Reference in New Issue
Block a user