27 lines
723 B
C#
27 lines
723 B
C#
using Beam.Abstractions;
|
|
|
|
namespace Beam.Models {
|
|
public class State(string[] state) : IState {
|
|
string[] state = state;
|
|
|
|
public string[] GetState() => state;
|
|
|
|
public void SetState(string[] state) => this.state = state;
|
|
|
|
public IReadOnlyState AsReadOnly() => new ImmutableState(this.state);
|
|
|
|
public State Copy()
|
|
=> new((string[])state.Clone());
|
|
|
|
IState IState.Copy()
|
|
=> Copy();
|
|
|
|
public static implicit operator ImmutableState(State state) => new ImmutableState(state.GetState());
|
|
|
|
public string this[Index i] {
|
|
get => state[i];
|
|
set => state[i] = value;
|
|
}
|
|
}
|
|
}
|