XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESystem

【Rust】XFE系统,基于Rust和汇编

公开
关注 0 Fork 0 Star 0
UTF-8
using System.Text;

namespace XFESystem.Browser;

internal sealed class BoundedText(int maximumCharacters)
{
    private readonly StringBuilder text = new();
    public int Length => text.Length;

    public void Append(string value)
    {
        if (value.Length > maximumCharacters - text.Length)
            throw new BrowserLimitException("The page or console output exceeds its character limit.");
        text.Append(value);
    }

    public void Clear() => text.Clear();
    public override string ToString() => text.ToString();

    public static string Safe(string value, int maximum)
    {
        var result = new StringBuilder(Math.Min(value.Length, maximum));
        foreach (var character in value)
        {
            if (result.Length == maximum) break;
            if (!char.IsControl(character) || character is '\n' or '\r' or '\t') result.Append(character);
        }
        return result.ToString();
    }
}