sockscape/server_old/Libraries/Glove/INI/Instance.cs
2018-02-13 19:16:58 -06:00

47 lines
1.3 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Glove.INI {
public class Instance : IEnumerable<KeyValuePair<string, Value>> {
private readonly Dictionary<string, Value> Data
= new Dictionary<string, Value>(StringComparer.OrdinalIgnoreCase);
internal Instance() { }
internal void Push(string line) {
if(line.Trim() == "")
return;
if(line.Contains('=')) {
var parts = line.Split(new[] { '=' }, 2);
Data.Add(parts[0].Trim(), new Value(parts[1].Trim()));
} else
throw new FormatException("Line is not a key-value pair delimited by an equals sign.");
}
public Value this[string key] {
get {
if(Data.ContainsKey(key))
return Data[key];
else return null;
}
}
public bool ContainsKey(string key) {
return Data.ContainsKey(key);
}
IEnumerator IEnumerable.GetEnumerator() {
return Data.GetEnumerator();
}
IEnumerator<KeyValuePair<string, Value>> IEnumerable<KeyValuePair<string, Value>>.GetEnumerator() {
return Data.GetEnumerator();
}
}
}