Skip to main content

googletest/matchers/
mod.rs

1// Copyright 2022 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15//! All built-in matchers of this crate are in submodules of this module.
16
17mod all_matcher;
18mod any_matcher;
19mod anything_matcher;
20mod bool_matcher;
21mod char_count_matcher;
22mod conjunction_matcher;
23mod container_eq_matcher;
24mod contains_matcher;
25mod contains_regex_matcher;
26mod derefs_to_matcher;
27mod disjunction_matcher;
28mod display_matcher;
29mod each_matcher;
30mod elements_are_matcher;
31mod empty_matcher;
32mod eq_matcher;
33mod err_matcher;
34mod field_matcher;
35mod ge_matcher;
36mod gt_matcher;
37mod has_entry_matcher;
38mod is_encoded_string_matcher;
39mod is_finite_matcher;
40mod is_infinite_matcher;
41mod is_matcher;
42mod is_nan_matcher;
43mod le_matcher;
44mod len_matcher;
45mod lt_matcher;
46mod matches_pattern;
47mod matches_regex_matcher;
48mod near_matcher;
49mod none_matcher;
50mod not_matcher;
51mod ok_matcher;
52mod points_to_matcher;
53mod pointwise_matcher;
54mod predicate_matcher;
55mod property_matcher;
56mod result_of_matcher;
57mod some_matcher;
58mod str_matcher;
59mod subset_of_matcher;
60mod superset_of_matcher;
61mod tuple_matcher;
62mod unordered_elements_are_matcher;
63
64pub use anything_matcher::anything;
65pub use bool_matcher::{is_false, is_true};
66pub use char_count_matcher::char_count;
67pub use container_eq_matcher::container_eq;
68pub use contains_matcher::{contains, ContainsMatcher};
69pub use contains_regex_matcher::contains_regex;
70pub use derefs_to_matcher::derefs_to;
71pub use display_matcher::displays_as;
72pub use each_matcher::each;
73pub use empty_matcher::{empty, is_empty};
74pub use eq_matcher::{eq, EqMatcher};
75pub use err_matcher::err;
76pub use ge_matcher::ge;
77pub use gt_matcher::gt;
78pub use has_entry_matcher::has_entry;
79pub use is_encoded_string_matcher::is_utf8_string;
80pub use is_finite_matcher::is_finite;
81pub use is_infinite_matcher::is_infinite;
82pub use is_nan_matcher::is_nan;
83pub use le_matcher::le;
84pub use len_matcher::len;
85pub use lt_matcher::lt;
86pub use matches_regex_matcher::matches_regex;
87pub use near_matcher::{approx_eq, near, NearMatcher};
88pub use none_matcher::none;
89pub use not_matcher::not;
90pub use ok_matcher::ok;
91pub use points_to_matcher::points_to;
92pub use predicate_matcher::{predicate, PredicateMatcher};
93pub use some_matcher::some;
94pub use str_matcher::{
95    contains_substring, ends_with, starts_with, StrMatcher, StrMatcherConfigurator,
96};
97pub use subset_of_matcher::subset_of;
98pub use superset_of_matcher::superset_of;
99
100// Reexport and unmangle the macros.
101#[doc(inline)]
102pub use crate::{
103    __all as all, __any as any, __contains_each as contains_each, __elements_are as elements_are,
104    __field as field, __is_contained_in as is_contained_in, __matches_pattern as matches_pattern,
105    __pat as pat, __pointwise as pointwise, __property as property, __result_of as result_of,
106    __result_of_ref as result_of_ref, __unordered_elements_are as unordered_elements_are,
107};
108
109// Types and functions used by macros matchers.
110// Do not use directly.
111// We may perform incompatible changes without major release. These elements
112// should only be used through their respective macros.
113#[doc(hidden)]
114pub mod __internal_unstable_do_not_depend_on_these {
115    pub use super::conjunction_matcher::ConjunctionMatcher;
116    pub use super::disjunction_matcher::DisjunctionMatcher;
117    pub use super::elements_are_matcher::internal::ElementsAre;
118    pub use super::field_matcher::internal::field_matcher;
119    pub use super::is_matcher::is;
120    pub use super::matches_pattern::internal::{
121        __googletest_macro_matches_pattern, compile_assert_and_match, pattern_only,
122    };
123    pub use super::pointwise_matcher::internal::PointwiseMatcher;
124    pub use super::property_matcher::internal::{property_matcher, property_ref_matcher};
125    pub use super::result_of_matcher::internal::{result_of, result_of_ref};
126    pub use super::unordered_elements_are_matcher::internal::UnorderedElementsAreMatcher;
127    pub use crate::matcher_support::match_matrix::internal::Requirements;
128}