aboutsummaryrefslogtreecommitdiff
path: root/module/vcomponent/base.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/vcomponent/base.scm')
-rw-r--r--module/vcomponent/base.scm10
1 files changed, 10 insertions, 0 deletions
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)