forked from mirrors/jj
3e029537c6
FilesetExpression is similar to RevsetExpression, but there are two major differences: - Union is represented as N-ary operator, - Expression node isn't Rc-ed. The former is because of the nature of the runtime Matcher objects. It's easier to construct a Matcher from flattened union expressions than from a binary tree. The latter choice comes from UnionAll(Vec<FilesetExpression>), which doesn't have to be Vec<Rc<FilesetExpression>>, and Rc<[FilesetExpression]> can't be constructed from [Rc<_>, ..]. Anyway, the internal representation may change as needed. Another design decision I made is Vec<Pattern(RepoPathBuf)> vs Pattern(Vec<RepoPathBuf>). I chose the former because it will be more closer to the parsed tree of the fileset language. |
||
---|---|---|
.. | ||
benches | ||
gen-protos | ||
proc-macros | ||
src | ||
tests | ||
testutils | ||
Cargo.toml | ||
LICENSE |