Share only-meta-tset between mux.rkt and patch.rkt
This commit is contained in:
parent
623140dc36
commit
b1c773ddd4
|
@ -68,14 +68,13 @@
|
||||||
delta-aggregate))
|
delta-aggregate))
|
||||||
|
|
||||||
(define at-meta-everything (pattern->trie #t (at-meta ?)))
|
(define at-meta-everything (pattern->trie #t (at-meta ?)))
|
||||||
(define only-meta (datum-tset 'meta))
|
|
||||||
|
|
||||||
(define (echo-cancelled-trie t)
|
(define (echo-cancelled-trie t)
|
||||||
(trie-subtract t
|
(trie-subtract t
|
||||||
at-meta-everything
|
at-meta-everything
|
||||||
#:combiner (lambda (v1 v2)
|
#:combiner (lambda (v1 v2)
|
||||||
(if (tset-member? v1 'meta)
|
(if (tset-member? v1 'meta)
|
||||||
only-meta
|
only-meta-tset
|
||||||
#f))))
|
#f))))
|
||||||
|
|
||||||
(define (compute-patches old-m new-m label delta delta-aggregate)
|
(define (compute-patches old-m new-m label delta delta-aggregate)
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
label-patch
|
label-patch
|
||||||
limit-patch
|
limit-patch
|
||||||
limit-patch/routing-table
|
limit-patch/routing-table
|
||||||
|
only-meta-tset
|
||||||
compute-aggregate-patch
|
compute-aggregate-patch
|
||||||
apply-patch
|
apply-patch
|
||||||
update-interests
|
update-interests
|
||||||
|
@ -129,6 +130,8 @@
|
||||||
(trie-intersect out bound
|
(trie-intersect out bound
|
||||||
#:combiner (lambda (v1 v2) (empty-tset-guard (tset-intersect v1 v2))))))
|
#:combiner (lambda (v1 v2) (empty-tset-guard (tset-intersect v1 v2))))))
|
||||||
|
|
||||||
|
(define only-meta-tset (datum-tset 'meta))
|
||||||
|
|
||||||
;; Entries labelled with `label` may already exist in `base`; the
|
;; Entries labelled with `label` may already exist in `base`; the
|
||||||
;; patch `p` MUST already have been limited to add only where no
|
;; patch `p` MUST already have been limited to add only where no
|
||||||
;; `label`-labelled portions of `base` exist, and to remove only where
|
;; `label`-labelled portions of `base` exist, and to remove only where
|
||||||
|
@ -167,7 +170,7 @@
|
||||||
;; ...except when `remove-meta?` is true. In that case, we need to
|
;; ...except when `remove-meta?` is true. In that case, we need to
|
||||||
;; keep the point in the case that the only interest present is
|
;; keep the point in the case that the only interest present is
|
||||||
;; `'meta`-labeled interest.
|
;; `'meta`-labeled interest.
|
||||||
(if (and remove-meta? (equal? v2 (datum-tset 'meta)))
|
(if (and remove-meta? (eq? v2 only-meta-tset)) ;; N.B. relies on canonicity of v2 !
|
||||||
v1
|
v1
|
||||||
#f))
|
#f))
|
||||||
(define (rem-combiner v1 v2)
|
(define (rem-combiner v1 v2)
|
||||||
|
|
Loading…
Reference in New Issue