You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
2.0 KiB
Racket
43 lines
2.0 KiB
Racket
#lang racket/base
|
|
(require sugar/define)
|
|
|
|
(require-via-wormhole "../typed/txexpr/main.rkt")
|
|
|
|
(provide+safe
|
|
[xexpr? predicate/c]
|
|
[txexpr? predicate/c]
|
|
[txexpr-short? predicate/c]
|
|
[txexpr-tag? predicate/c]
|
|
[txexpr-tags? predicate/c]
|
|
[txexpr-attr? predicate/c]
|
|
[txexpr-attrs? predicate/c]
|
|
[txexpr-element? predicate/c]
|
|
[txexpr-elements? predicate/c]
|
|
[validate-txexpr (any/c . -> . txexpr?)]
|
|
[make-txexpr ((symbol?) (txexpr-attrs? txexpr-elements?) . ->* . txexpr?)]
|
|
[txexpr->values (txexpr? . -> . (values symbol? txexpr-attrs? txexpr-elements?))]
|
|
[txexpr->list (txexpr? . -> . list?)]
|
|
[get-tag (txexpr? . -> . txexpr-tag?)]
|
|
[get-attrs (txexpr? . -> . txexpr-attrs?)]
|
|
[get-elements (txexpr? . -> . txexpr-elements?)]
|
|
[txexpr-attr-key? predicate/c]
|
|
[txexpr-attr-value? predicate/c]
|
|
[can-be-txexpr-attr-key? predicate/c]
|
|
[can-be-txexpr-attr-value? predicate/c]
|
|
[->txexpr-attr-key (can-be-txexpr-attr-key? . -> . txexpr-attr-key?)]
|
|
[->txexpr-attr-value (can-be-txexpr-attr-value? . -> . txexpr-attr-value?)]
|
|
[can-be-txexpr-attrs? predicate/c]
|
|
[list-of-can-be-txexpr-attrs? predicate/c]
|
|
[attrs->hash (() #:rest (listof can-be-txexpr-attrs?) . ->* . hash?)]
|
|
[hash->attrs (hash? . -> . txexpr-attrs?)]
|
|
[attr-ref (txexpr? can-be-txexpr-attr-key? . -> . txexpr-attr-value?)]
|
|
[attr-ref* (txexpr? can-be-txexpr-attr-key? . -> . txexpr-attr-values?)]
|
|
[attrs-have-key? ((or/c txexpr-attrs? txexpr?) can-be-txexpr-attr-key? . -> . boolean?)]
|
|
[attrs-equal? ((or/c txexpr-attrs? txexpr?) (or/c txexpr-attrs? txexpr?) . -> . boolean?)]
|
|
[attr-set (txexpr? can-be-txexpr-attr-key? can-be-txexpr-attr-value? . -> . txexpr?)]
|
|
[merge-attrs (() #:rest list-of-can-be-txexpr-attrs? . ->* . txexpr-attrs?)]
|
|
[remove-attrs (txexpr? . -> . txexpr?)]
|
|
[map-elements/exclude (procedure? txexpr? procedure? . -> . txexpr?)]
|
|
[map-elements (procedure? txexpr? . -> . txexpr?)]
|
|
[splitf-txexpr ((txexpr? procedure?) (procedure?) . ->* . (values txexpr? txexpr-elements?))]
|
|
[xexpr->html (xexpr? . -> . string?)]) |