#nullable enable
using System.Collections.Concurrent;
namespace Terminal.Gui.Drivers;
///
/// Abstract base class implementation of that provides a default implementation of .
/// The platform specific keyboard input type (e.g. or
public abstract class ComponentFactoryImpl : IComponentFactory where TInputRecord : struct
{
///
public abstract IInput CreateInput ();
///
public abstract IInputProcessor CreateInputProcessor (ConcurrentQueue inputBuffer);
///
public virtual ISizeMonitor CreateSizeMonitor (IOutput consoleOutput, IOutputBuffer outputBuffer)
{
return new SizeMonitorImpl (consoleOutput);
}
///
public abstract IOutput CreateOutput ();
}