Lines Matching defs:Source
17 pub trait Source {
65 /// The default implemention of `Source::get`
66 pub(crate) fn get_default<'v>(source: &'v (impl Source + ?Sized), key: Key) -> Option<Value<'v>> {
88 /// The default implementation of `Source::count`.
89 pub(crate) fn count_default(source: impl Source) -> usize {
105 impl<'a, T> Source for &'a T
107 T: Source + ?Sized,
110 Source::visit(&**self, visitor)
114 Source::get(&**self, key)
118 Source::count(&**self)
122 impl<K, V> Source for (K, V)
144 impl<S> Source for [S]
146 S: Source,
171 impl<S> Source for Option<S>
173 S: Source,
188 self.as_ref().map(Source::count).unwrap_or(0)
192 /// A visitor for the key-value pairs in a [`Source`](trait.Source.html).
243 impl<S> Source for Box<S>
245 S: Source + ?Sized,
248 Source::visit(&**self, visitor)
252 Source::get(&**self, key)
256 Source::count(&**self)
260 impl<S> Source for Vec<S>
262 S: Source,
265 Source::visit(&**self, visitor)
269 Source::get(&**self, key)
273 Source::count(&**self)
286 impl<K, V, S> Source for HashMap<K, V, S>
308 impl<K, V> Source for BTreeMap<K, V>
337 assert_eq!(1, Source::count(&Box::new(("a", 1))));
338 assert_eq!(2, Source::count(&vec![("a", 1), ("b", 2)]));
346 Source::get(&source, Key::from_str("a")).unwrap().to_token()
350 assert!(Source::get(&source, Key::from_str("a")).is_none());
359 assert_eq!(2, Source::count(&map));
362 Source::get(&map, Key::from_str("a")).unwrap().to_token()
372 assert_eq!(2, Source::count(&map));
375 Source::get(&map, Key::from_str("a")).unwrap().to_token()
381 /// The result of calling `Source::as_map`.
387 S: Source,
392 impl<S> Source for AsMap<S>
394 S: Source,
411 S: Source,
420 /// The result of calling `Source::as_list`
426 S: Source,
431 impl<S> Source for AsList<S>
433 S: Source,
450 S: Source,
467 S: Source,
499 S: Source,
539 kvs: source::AsMap<&'a dyn Source>,
545 kvs: source::AsList<&'a dyn Source>,
553 //! `serde` adapters for serializing a `Source` as a map.
559 /// Serialize a `Source` as a map.
562 T: Source,
571 //! `serde` adapters for serializing a `Source` as a list.
577 /// Serialize a `Source` as a list.
580 T: Source,
595 T: Source,
626 T: Source,
670 kvs: &'a dyn Source,
678 kvs: &'a dyn Source,
691 fn _check(_: &dyn Source) {}
706 impl Source for OnePair {
720 assert_eq!(1, Source::count(&("a", 1)));
721 assert_eq!(2, Source::count(&[("a", 1), ("b", 2)] as &[_]));
722 assert_eq!(0, Source::count(&Option::None::<(&str, i32)>));
723 assert_eq!(1, Source::count(&OnePair { key: "a", value: 1 }));
731 Source::get(source, Key::from_str("a")).unwrap().to_token()
735 Source::get(source, Key::from_str("b")).unwrap().to_token()
737 assert!(Source::get(&source, Key::from_str("c")).is_none());
740 assert!(Source::get(&source, Key::from_str("a")).is_none());
746 let _ = crate::kv::source::as_map(&("a", 1) as &dyn Source);
752 let _ = crate::kv::source::as_list(&("a", 1) as &dyn Source);