forked from foonathan/type_safe
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
65 changed files
with
266 additions
and
347 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
# Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
# This file is subject to the license terms in the LICENSE file | ||
# found in the top-level directory of this distribution. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
# Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
# This file is subject to the license terms in the LICENSE file | ||
# found in the top-level directory of this distribution. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
# Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
# This file is subject to the license terms in the LICENSE file | ||
# found in the top-level directory of this distribution. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
@@ -58,8 +58,8 @@ using sanitized_string = ts::tagged_type<std::string, sanitized>; | |
using unsanitized_string = ts::tagged_type<std::string, unsanitized>; | ||
|
||
unsanitized_string get_form_data(); | ||
sanitized_string sanitize(const unsanitized_string& str); | ||
void execute_query(const sanitized_string& str); | ||
sanitized_string sanitize(const unsanitized_string& str); | ||
void execute_query(const sanitized_string& str); | ||
|
||
// now impossible to accidentally use unsanitized strings | ||
void do_stuff() | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
@@ -40,12 +40,11 @@ void use_handle(handle h) | |
} | ||
|
||
// integer representing a distance | ||
struct distance | ||
: ts::strong_typedef<distance, unsigned>, // required | ||
ts::strong_typedef_op::equality_comparison<distance>, // for operator==/operator!= | ||
ts::strong_typedef_op::relational_comparison<distance>, // for operator< etc. | ||
ts::strong_typedef_op:: | ||
integer_arithmetic<distance> // all arithmetic operators that make sense for integers | ||
struct distance : ts::strong_typedef<distance, unsigned>, // required | ||
ts::strong_typedef_op::equality_comparison<distance>, // for operator==/operator!= | ||
ts::strong_typedef_op::relational_comparison<distance>, // for operator< etc. | ||
ts::strong_typedef_op::integer_arithmetic< | ||
distance> // all arithmetic operators that make sense for integers | ||
{ | ||
using strong_typedef::strong_typedef; | ||
}; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
# Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
# This file is subject to the license terms in the LICENSE file | ||
# found in the top-level directory of this distribution. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
@@ -267,14 +267,14 @@ namespace type_safe | |
/// A value is valid if it is between two given bounds but not the bounds themselves. | ||
template <typename T, typename LowerBound = dynamic_bound, | ||
typename UpperBound = dynamic_bound> | ||
using open_interval = bounded<T, open, open, LowerBound, UpperBound>; | ||
using open_interval = bounded<T, open, open, LowerBound, UpperBound>; | ||
|
||
/// A `Constraint` for the [ts::constrained_type](). | ||
/// | ||
/// A value is valid if it is between two given bounds or the bounds themselves. | ||
template <typename T, typename LowerBound = dynamic_bound, | ||
typename UpperBound = dynamic_bound> | ||
using closed_interval = bounded<T, closed, closed, LowerBound, UpperBound>; | ||
using closed_interval = bounded<T, closed, closed, LowerBound, UpperBound>; | ||
} // namespace constraints | ||
|
||
/// \exclude | ||
|
@@ -367,9 +367,9 @@ namespace type_safe | |
typename LowerBound = constraints::dynamic_bound, | ||
typename UpperBound = constraints::dynamic_bound, | ||
typename Verifier = assertion_verifier> | ||
using bounded_type = constrained_type<T, constraints::bounded<T, LowerInclusive, UpperInclusive, | ||
LowerBound, UpperBound>, | ||
Verifier>; | ||
using bounded_type = constrained_type< | ||
T, constraints::bounded<T, LowerInclusive, UpperInclusive, LowerBound, UpperBound>, | ||
Verifier>; | ||
|
||
inline namespace literals | ||
{ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
@@ -61,9 +61,7 @@ namespace type_safe | |
|
||
/// \effects Initializes it in the state without value, | ||
/// i.e. sets the storage to the invalid value. | ||
compact_optional_storage() noexcept : storage_(CompactPolicy::invalid_value()) | ||
{ | ||
} | ||
compact_optional_storage() noexcept : storage_(CompactPolicy::invalid_value()) {} | ||
|
||
/// \effects Creates a temporary `value_type` by perfectly forwarding `args`, | ||
/// converts that to the `storage_type` and assigns it. | ||
|
@@ -94,9 +92,7 @@ namespace type_safe | |
storage_ = std::move(other.storage_); | ||
} | ||
|
||
void create_value_explicit() | ||
{ | ||
} | ||
void create_value_explicit() {} | ||
|
||
/// \effects Copy assigns the `storage_type`. | ||
void copy_value(const compact_optional_storage& other) | ||
|
@@ -166,10 +162,9 @@ namespace type_safe | |
/// \group get_value_or | ||
/// \param 1 | ||
/// \exclude | ||
template <typename U, | ||
typename = | ||
typename std::enable_if<std::is_copy_constructible<value_type>::value | ||
&& std::is_convertible<U&&, value_type>::value>::type> | ||
template <typename U, typename = typename std::enable_if< | ||
std::is_copy_constructible<value_type>::value | ||
&& std::is_convertible<U&&, value_type>::value>::type> | ||
value_type get_value_or(U&& u) const TYPE_SAFE_LVALUE_REF | ||
{ | ||
return has_value() ? get_value() : static_cast<value_type>(std::forward<U>(u)); | ||
|
@@ -179,10 +174,9 @@ namespace type_safe | |
/// \group get_value_or | ||
/// \param 1 | ||
/// \exclude | ||
template <typename U, | ||
typename = | ||
typename std::enable_if<std::is_move_constructible<value_type>::value | ||
&& std::is_convertible<U&&, value_type>::value>::type> | ||
template <typename U, typename = typename std::enable_if< | ||
std::is_move_constructible<value_type>::value | ||
&& std::is_convertible<U&&, value_type>::value>::type> | ||
value_type get_value_or(U&& u) && | ||
{ | ||
return has_value() ? std::move(get_value()) : | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
@@ -131,9 +131,8 @@ namespace type_safe | |
} | ||
|
||
/// \exclude | ||
template <typename U, | ||
typename = typename std::enable_if<!detail::is_valid<constraint_predicate, | ||
U>::value>::type> | ||
template <typename U, typename = typename std::enable_if< | ||
!detail::is_valid<constraint_predicate, U>::value>::type> | ||
constrained_type(U) = delete; | ||
|
||
/// \effects Copies the value and predicate of `other`. | ||
|
@@ -172,9 +171,8 @@ namespace type_safe | |
} | ||
|
||
/// \exclude | ||
template <typename U, | ||
typename = typename std::enable_if<!detail::is_valid<constraint_predicate, | ||
U>::value>::type> | ||
template <typename U, typename = typename std::enable_if< | ||
!detail::is_valid<constraint_predicate, U>::value>::type> | ||
constrained_type& operator=(U) = delete; | ||
|
||
/// \effects Copies the value and predicate from `other`. | ||
|
@@ -286,9 +284,8 @@ namespace type_safe | |
} | ||
|
||
/// \exclude | ||
template <typename U, | ||
typename = typename std::enable_if<!detail::is_valid<constraint_predicate, | ||
U>::value>::type> | ||
template <typename U, typename = typename std::enable_if< | ||
!detail::is_valid<constraint_predicate, U>::value>::type> | ||
constrained_type(U) = delete; | ||
|
||
/// \returns A proxy object to provide verified write-access to the referred value. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
@@ -35,9 +35,7 @@ namespace type_safe | |
//=== constructors/assignment/destructor ===// | ||
/// Default constructor. | ||
/// \effects Creates it in the un-initialized state. | ||
deferred_construction() noexcept : initialized_(false) | ||
{ | ||
} | ||
deferred_construction() noexcept : initialized_(false) {} | ||
|
||
/// Copy constructor: | ||
/// \effects If `other` is un-initialized, it will be un-initialized as well. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
@@ -19,8 +19,8 @@ namespace type_safe | |
}; | ||
|
||
struct precondition_error_handler | ||
: debug_assert::set_level<TYPE_SAFE_ENABLE_PRECONDITION_CHECKS>, | ||
debug_assert::default_handler | ||
: debug_assert::set_level<TYPE_SAFE_ENABLE_PRECONDITION_CHECKS>, | ||
debug_assert::default_handler | ||
{ | ||
}; | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
@@ -58,9 +58,8 @@ namespace type_safe | |
{ | ||
struct visitor | ||
{ | ||
template < | ||
typename T, | ||
typename = typename std::enable_if<std::is_copy_assignable<T>::value>::type> | ||
template <typename T, typename = typename std::enable_if< | ||
std::is_copy_assignable<T>::value>::type> | ||
void do_assign(Union& dest, const T& value) | ||
{ | ||
dest.value(union_type<T>{}) = value; | ||
|
@@ -96,9 +95,8 @@ namespace type_safe | |
{ | ||
struct visitor | ||
{ | ||
template < | ||
typename T, | ||
typename = typename std::enable_if<std::is_move_assignable<T>::value>::type> | ||
template <typename T, typename = typename std::enable_if< | ||
std::is_move_assignable<T>::value>::type> | ||
void do_assign(Union& dest, T&& value) | ||
{ | ||
dest.value(union_type<T>{}) = std::move(value); | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright (C) 2016-2017 Jonathan Müller <[email protected]> | ||
// Copyright (C) 2016-2018 Jonathan Müller <[email protected]> | ||
// This file is subject to the license terms in the LICENSE file | ||
// found in the top-level directory of this distribution. | ||
|
||
|
Oops, something went wrong.