Code/CssPropertyBuilder.cs
using System.Text;
namespace BetterUI;
/// <summary>
/// A builder for a CSS property.
/// </summary>
internal sealed class CssPropertyBuilder
{
private string _name = null!;
private object _value = null!;
private readonly StringBuilder _builder = new();
/// <summary>
/// Sets the name of the CSS property.
/// </summary>
/// <param name="name">The name of the CSS property.</param>
/// <returns>The builder.</returns>
public CssPropertyBuilder WithName( string name )
{
_name = name;
return this;
}
/// <summary>
/// Sets the value of the CSS property.
/// </summary>
/// <param name="value">The value of the CSS property.</param>
/// <returns>The builder.</returns>
public CssPropertyBuilder WithValue( object value )
{
_value = value;
return this;
}
/// <summary>
/// Builds the CSS property.
/// </summary>
/// <returns>The built CSS property.</returns>
public string Build()
{
_builder.Append( _name );
_builder.Append( ": " );
_builder.Append( _value );
_builder.Append( ';' );
return ToString();
}
public override string ToString() => _builder.ToString();
}