rust-filepatterns: use bytes instead of String
In my initial patch, I introduced an unnecessary hard constraint on UTF-8
filenames and patterns which I forgot to remove. Although the performance
penalty for using String might be negligible, we don't want to break
compatibility with non-UTF-8 encodings for no reason.
Moreover, this change allows for a cleaner Rust core API.
This patch introduces a new utils module that is used with this fix.
Finally, PatternError was not put inside the Python module generated by
Rust, which would have raised a NameError.
Differential Revision: https://phab.mercurial-scm.org/D6485
from __future__ import absolute_import, print_function
import sys
from mercurial import (
pycompat,
util,
)
def main(argv):
enc = util.urlreq.quote(pycompat.sysbytes(argv[1]))
if pycompat.iswindows:
fmt = 'file:///%s'
else:
fmt = 'file://%s'
print(fmt % pycompat.sysstr(enc))
if __name__ == '__main__':
main(sys.argv)