From 32468e925427a4471f1d79f2fe1726c2c889c0d7 Mon Sep 17 00:00:00 2001 From: oppiliappan Date: Tue, 16 Dec 2025 03:52:38 +0000 Subject: [PATCH] types: add interfaces for a generic, renderable diff any {split,unified} {diff,interdiff} can be rendered by adhering to this interface. --- types/diff_renderer.go | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 types/diff_renderer.go diff --git a/types/diff_renderer.go b/types/diff_renderer.go new file mode 100644 index 00000000..441c1979 --- /dev/null +++ b/types/diff_renderer.go @@ -0,0 +1,31 @@ +package types + +import "tangled.org/core/appview/filetree" + +type DiffRenderer interface { + // list of file affected by these diffs + ChangedFiles() []DiffFileRenderer + + // filetree + FileTree() *filetree.FileTreeNode + + Stats() DiffStat +} + +type DiffFileRenderer interface { + // html ID for each file in the diff + Id() string + + // produce a splitdiff + Split() SplitDiff + + // stats for this single file + Stats() DiffFileStat + + // old and new name of file + Names() DiffFileName + + // whether this diff can be displayed, + // returns a reason if not, and the empty string if it can + CanRender() string +} -- 2.51.2