/*
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;
namespace dnSpy.Contracts.Disassembly.Viewer {
///
/// Text and color
///
public readonly struct DisassemblyText {
///
/// Text
///
public string Text { get; }
///
/// Color
///
public object Color { get; }
///
/// Gets the reference or null
///
public object? Reference { get; }
///
/// Gets the flags
///
public DisassemblyReferenceFlags ReferenceFlags { get; }
///
/// Constructor
///
/// Color
/// Text
/// Reference or null
/// Reference flags
public DisassemblyText(object color, string text, object? reference, DisassemblyReferenceFlags referenceFlags) {
Color = color ?? throw new ArgumentNullException(nameof(color));
Text = text ?? throw new ArgumentNullException(nameof(text));
Reference = reference;
ReferenceFlags = referenceFlags;
}
}
///
/// reference flags
///
public enum DisassemblyReferenceFlags {
///
/// No bit is set
///
None = 0,
///
/// It's a definition if set, else it's a reference to the definition
///
Definition = 0x00000001,
///
/// It's a local definition or reference, eg. a label
///
Local = 0x00000002,
///
/// The code writes to the reference
///
IsWrite = 0x00000004,
///
/// Reference shouldn't be highlighted
///
Hidden = 0x00000008,
///
/// Don't allow to follow the reference
///
NoFollow = 0x00000010,
}
}