##// END OF EJS Templates
rust-matchers: remove default implementations for `Matcher` trait...
rust-matchers: remove default implementations for `Matcher` trait We don't expect a whole lot of matchers to be defined, and this makes it more obvious what a matcher does by reading its `impl Matcher for FooMatcher`. This patch has the added benefit of fixing the `AlwaysMatcher`, its `matches` function differs from the former default. Differential Revision: https://phab.mercurial-scm.org/D7255

File last commit:

r34398:765eb17a default
r44009:27c25c0d default
Show More
converters.py
24 lines | 531 B | text/x-python | PythonLexer
Siddharth Agarwal
thirdparty: vendor attrs...
r34398 """
Commonly useful converters.
"""
from __future__ import absolute_import, division, print_function
def optional(converter):
"""
A converter that allows an attribute to be optional. An optional attribute
is one which can be set to ``None``.
:param callable converter: the converter that is used for non-``None``
values.
.. versionadded:: 17.1.0
"""
def optional_converter(val):
if val is None:
return None
return converter(val)
return optional_converter