From 34059d4d71cb8081d065467cd32e31c2aa21c728 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Mon, 13 Nov 2023 22:06:13 +0100 Subject: Add vcomponent-equal?. --- module/vcomponent/base.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'module/vcomponent') diff --git a/module/vcomponent/base.scm b/module/vcomponent/base.scm index 2a607fc5..4cacbb46 100644 --- a/module/vcomponent/base.scm +++ b/module/vcomponent/base.scm @@ -20,6 +20,8 @@ children type parent add-child + vcomponent-equal? + remove-property prop* prop extract extract* @@ -96,6 +98,14 @@ default: (table) type: table?) (parent default: #f type: (or false? vcomponent?))) +(define (vcomponent-equal? a b) + (and (eqv? (type a) (type b)) + (= (length (children a)) (length (children b))) + (every vcomponent-equal? + (sort* (children a) string< (extract 'UID)) + (sort* (children b) string< (extract 'UID))) + (equal? (properties a) (properties b)))) + (define prop* (case-lambda ((object key) -- cgit v1.2.3