Use FrozenDictionary where appropriate

This commit is contained in:
Jordan Dominion
2023-12-23 20:56:18 -05:00
parent f8e4af3be5
commit e655767d31
2 changed files with 8 additions and 6 deletions
@@ -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)