(-as-spec this)
(parse-pattern pattern)
Parse an EDN pull pattern into a tree of records using the following grammar:
pattern = [attr-spec+]
attr-spec = attr-name | wildcard | map-spec | attr-expr
attr-name = an edn keyword that names an attr
wildcard = "*" or '*'
map-spec = { ((attr-name | attr-expr) (pattern | recursion-limit))+ }
attr-expr = attr-with-opts | legacy-attr-expr
attr-with-opts = [attr-name attr-option+]
attr-option = :as any-value | :limit (positive-number | nil) | :default any-value
recursion-limit = positive-number | '...'
legacy-attr-expr = legacy-limit-expr | legacy-default-expr
legacy-limit-expr = [("limit" | 'limit') attr-name (positive-number | nil)]
legacy-default-expr = [("default" | 'default') attr-name any-value]
Parse an EDN pull pattern into a tree of records using the following grammar: ``` pattern = [attr-spec+] attr-spec = attr-name | wildcard | map-spec | attr-expr attr-name = an edn keyword that names an attr wildcard = "*" or '*' map-spec = { ((attr-name | attr-expr) (pattern | recursion-limit))+ } attr-expr = attr-with-opts | legacy-attr-expr attr-with-opts = [attr-name attr-option+] attr-option = :as any-value | :limit (positive-number | nil) | :default any-value recursion-limit = positive-number | '...' legacy-attr-expr = legacy-limit-expr | legacy-default-expr legacy-limit-expr = [("limit" | 'limit') attr-name (positive-number | nil)] legacy-default-expr = [("default" | 'default') attr-name any-value] ```
(parse-pull pattern)
Parse EDN pull pattern
specification (see parse-pattern
), and
convert the resulting tree into a PullSpec
instance (see pattern->spec
).
Throws an error if the supplied pattern
cannot be parsed.
Parse EDN pull `pattern` specification (see `parse-pattern`), and convert the resulting tree into a `PullSpec` instance (see `pattern->spec`). Throws an error if the supplied `pattern` cannot be parsed.
(pattern->spec pattern)
Convert a parsed tree of pull pattern records into a PullSpec
instance,
a record type containing two keys:
:wildcard?
- a boolean indicating if the pattern contains a wildcard.:attrs
- a map of attribute specifications.The attribute specification map consists of keys which will become the keys in the result map, and values which are themselves maps describing the attribute:
:attr
(required) - The attr name to pull; for reverse attributes
this will be the normalized attribute name.:as
(optional) - Alias, any:limit
(optional) - If present, specifies a custom limit for this
attribute; Either nil
, indicating no limit,
or a positive integer.:default
(optional) - If present, specifies a default value for this
attribute:recursion
(optional) - If present, specifies a recursion limit for this
attribute; Either nil
, indicating no limit, or
a positive integer.:subpattern
(optional) - If present, specifies a sub PullSpec
instance
to be applied to entities matched by this
attribute.Convert a parsed tree of pull pattern records into a `PullSpec` instance, a record type containing two keys: * `:wildcard?` - a boolean indicating if the pattern contains a wildcard. * `:attrs` - a map of attribute specifications. The attribute specification map consists of keys which will become the keys in the result map, and values which are themselves maps describing the attribute: * `:attr` (required) - The attr name to pull; for reverse attributes this will be the normalized attribute name. * `:as` (optional) - Alias, any * `:limit` (optional) - If present, specifies a custom limit for this attribute; Either `nil`, indicating no limit, or a positive integer. * `:default` (optional) - If present, specifies a default value for this attribute * `:recursion` (optional) - If present, specifies a recursion limit for this attribute; Either `nil`, indicating no limit, or a positive integer. * `:subpattern` (optional) - If present, specifies a sub `PullSpec` instance to be applied to entities matched by this attribute.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close