namespace Terminal.Gui;
///
/// Represents a single row/column in a Terminal.Gui rendering surface (e.g. and
/// ).
///
public record struct Cell ()
{
/// The attributes to use when drawing the Glyph.
public Attribute? Attribute { get; set; } = null;
///
/// Gets or sets a value indicating whether this has been modified since the
/// last time it was drawn.
///
public bool IsDirty { get; set; } = false;
private Rune _rune = default;
/// The character to display. If is , then is ignored.
public Rune Rune
{
get => _rune;
set
{
CombiningMarks.Clear ();
_rune = value;
}
}
///
/// The combining marks for that when combined makes this Cell a combining sequence. If
/// empty, then is ignored.
///
///
/// Only valid in the rare case where is a combining sequence that could not be normalized to a
/// single Rune.
///
internal List CombiningMarks { get; } = new ();
///
public override string ToString () { return $"[{Rune}, {Attribute}]"; }
}