namespace FastSeekWpf.Core; public abstract class IndexEvent { public class Created : IndexEvent { public FileRecord Record { get; } public Created(FileRecord record) => Record = record; } public class Deleted : IndexEvent { public ulong FileRef { get; } public Deleted(ulong fileRef) => FileRef = fileRef; } public class Renamed : IndexEvent { public ulong OldRef { get; } public FileRecord NewRecord { get; } public Renamed(ulong oldRef, FileRecord newRecord) { OldRef = oldRef; NewRecord = newRecord; } } public class Moved : IndexEvent { public ulong FileRef { get; } public ulong NewParentRef { get; } public string Name { get; } public FileKind Kind { get; } public Moved(ulong fileRef, ulong newParentRef, string name, FileKind kind) { FileRef = fileRef; NewParentRef = newParentRef; Name = name; Kind = kind; } } }