using System; using System.Diagnostics.CodeAnalysis; namespace Spectre.Console.Internal { [SuppressMessage("Performance", "CA1812:Avoid uninstantiated internal classes", Justification = "Not used (yet)")] internal sealed class StyleElement : IRenderable { private readonly Styles _style; private readonly IRenderable _element; /// public int Length => _element.Length; public StyleElement(Styles style, IRenderable element) { _style = style; _element = element ?? throw new ArgumentNullException(nameof(element)); } /// public void Render(IAnsiConsole renderer) { if (renderer is null) { throw new ArgumentNullException(nameof(renderer)); } using (renderer.PushStyle(_style)) { _element.Render(renderer); } } } }