acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
_loosely_map.h
1// From ::papaya::weak to ::loosely by camilo on 2022-11-18 07:48 <3ThomasBorregaardSorensen!!
2#pragma once
3
4
5// #include "acme/prototype/collection/_loosely.h"
6//
7// // maybe use and enhance string_map_base::case_insensitive_find_key_containing
8// // instead of this loosely::map_base
9// namespace loosely
10// {
11//
12//
13// namespace map_base
14// {
15//
16//
17// template < typename MAP >
18// typename MAP::BASE_NODE * get(MAP& m, typename MAP::ARG_PAYLOAD key)
19// {
20//
21// for (auto& item : m)
22// {
23//
24// if (contains(item.element1(), key))
25// {
26//
27// return item.m_p;
28//
29// }
30//
31// }
32//
33// return nullptr;
34//
35// }
36//
37//
38// template < typename MAP >
39// typename MAP::iterator find(MAP& m, typename MAP::ARG_PAYLOAD item)
40// {
41//
42// for (auto& item : m)
43// {
44//
45// if (contains(item.element1(), item))
46// {
47//
48// return item;
49//
50// }
51//
52// }
53//
54// return nullptr;
55//
56// }
57//
58//
59// template < typename MAP >
60// typename MAP::PAYLOAD defer_get(MAP& m, typename MAP::ARG_PAYLOAD item, typename MAP::PAYLOAD default_payload = ::loosely::default_payload < typename MAP::PAYLOAD >())
61// {
62//
63// auto iterator = find(m, item);
64//
65// if (!iterator)
66// {
67//
68// return default_payload;
69//
70// }
71//
72// return iterator->payload();
73//
74// }
75//
76//
77// } // namespace map_base
78//
79//
80// } // namespace loosely
81//
82//