/*
Copyright (C) 2014-2019 de4dot@gmail.com
This file is part of dnSpy
dnSpy is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
dnSpy is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with dnSpy. If not, see .
*/
using System.Collections.Generic;
using dnSpy.Contracts.Debugger.Text;
namespace dnSpy.Contracts.Debugger.DotNet.Text {
///
/// Creates
///
public sealed class DbgDotNetTextOutput : IDbgTextWriter {
readonly List list;
///
/// Constructor
///
public DbgDotNetTextOutput() => list = new List();
///
/// Writes text
///
/// Color
/// Text
public void Write(DbgTextColor color, string? text) {
if (text is not null)
list.Add(new DbgDotNetTextPart(color, text));
}
///
/// Creates a
///
///
public DbgDotNetText Create() => new DbgDotNetText(list.ToArray());
///
/// Creates a and clears this instance so it can be reused
///
///
public DbgDotNetText CreateAndReset() {
var res = new DbgDotNetText(list.ToArray());
list.Clear();
return res;
}
///
/// Clears this instance
///
public void Clear() => list.Clear();
}
}