/// <summary> /// Construct a new Mine /// </summary> /// <param name="terminalLayer">The mines terminal layer</param> /// <param name="traceExporter">An object that can export the trace data held within baskets</param> protected Mine(ITerminalLayer <T> terminalLayer, ITraceExporter traceExporter) { TerminalLayer = terminalLayer ?? throw new ArgumentNullException(nameof(terminalLayer)); TraceExporter = traceExporter; }
/// <summary> /// Construct a new Mine /// </summary> /// <param name="terminalLayer">The mines terminal layer</param> protected Mine(ITerminalLayer <T> terminalLayer) : this(terminalLayer, null) { }