Skip to content

Commit 5f3199a

Browse files
committed
Make all collections readonly in API surface
1 parent 8b07f9e commit 5f3199a

File tree

5 files changed

+14
-22
lines changed

5 files changed

+14
-22
lines changed

src/BizHawk.Client.Common/Api/Classes/EmulationApi.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ out var l
111111
return null;
112112
}
113113

114-
public Dictionary<string, ulong> GetRegisters()
114+
public IReadOnlyDictionary<string, ulong> GetRegisters()
115115
{
116116
try
117117
{

src/BizHawk.Client.Common/Api/Classes/MovieApi.cs

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
using System.IO;
44
using System.Linq;
55

6-
using BizHawk.Common;
76
using BizHawk.Emulation.Common;
87

98
namespace BizHawk.Client.Common
@@ -73,23 +72,16 @@ public void Save(string filename = null)
7372
_movieSession.Movie.Save();
7473
}
7574

76-
public Dictionary<string, string> GetHeader()
77-
{
78-
var table = new Dictionary<string, string>();
79-
if (_movieSession.Movie.NotActive())
80-
{
81-
return table;
82-
}
83-
foreach (var (k, v) in _movieSession.Movie.HeaderEntries) table[k] = v;
84-
return table;
85-
}
75+
public IReadOnlyDictionary<string, string> GetHeader()
76+
=> _movieSession.Movie.NotActive()
77+
? new Dictionary<string, string>()
78+
: _movieSession.Movie.HeaderEntries.ToDictionary(static kvp => kvp.Key, static kvp => kvp.Value);
8679

87-
public List<string> GetComments() => _movieSession.Movie.Comments.ToList();
80+
public IReadOnlyList<string> GetComments()
81+
=> _movieSession.Movie.Comments.ToList();
8882

89-
public List<string> GetSubtitles() =>
90-
_movieSession.Movie.Subtitles
91-
.Select(s => s.ToString())
92-
.ToList();
83+
public IReadOnlyList<string> GetSubtitles()
84+
=> _movieSession.Movie.Subtitles.Select(static s => s.ToString()).ToList();
9385

9486
public string Filename() => _movieSession.Movie.Filename;
9587

src/BizHawk.Client.Common/Api/Interfaces/IEmulationApi.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public interface IEmulationApi : IExternalApi
1313
int FrameCount();
1414
object Disassemble(uint pc, string name = "");
1515
ulong? GetRegister(string name);
16-
Dictionary<string, ulong> GetRegisters();
16+
IReadOnlyDictionary<string, ulong> GetRegisters();
1717
void SetRegister(string register, int value);
1818
long TotalExecutedCycles();
1919
string GetSystemId();

src/BizHawk.Client.Common/Api/Interfaces/IMovieApi.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ public interface IMovieApi : IExternalApi
2121
void SetRerecordCounting(bool counting);
2222
void Stop();
2323
double GetFps();
24-
Dictionary<string, string> GetHeader();
25-
List<string> GetComments();
26-
List<string> GetSubtitles();
24+
IReadOnlyDictionary<string, string> GetHeader();
25+
IReadOnlyList<string> GetComments();
26+
IReadOnlyList<string> GetSubtitles();
2727
}
2828
}

src/BizHawk.Client.Common/lua/NLuaTableHelper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public LuaTable DictToTable<T>(IReadOnlyDictionary<string, T> dictionary)
3636

3737
public IEnumerable<T> EnumerateValues<T>(LuaTable table) => table.Values.Cast<T>();
3838

39-
public LuaTable ListToTable<T>(IList<T> list, int indexFrom = 1)
39+
public LuaTable ListToTable<T>(IReadOnlyList<T> list, int indexFrom = 1)
4040
{
4141
var table = _lua.NewTable();
4242
for (int i = 0, l = list.Count; i != l; i++) table[indexFrom + i] = list[i];

0 commit comments

Comments
 (0)