1 /*******************************************************************************
2  * tlx/string/index_of.cpp
3  *
4  * Part of tlx - http://panthema.net/tlx
5  *
6  * Copyright (C) 2007-2017 Timo Bingmann <tb@panthema.net>
7  *
8  * All rights reserved. Published under the Boost Software License, Version 1.0
9  ******************************************************************************/
10 
11 #include <tlx/string/index_of.hpp>
12 
13 #include <tlx/string/equal_icase.hpp>
14 
15 #include <stdexcept>
16 
17 namespace tlx {
18 
index_of(const std::vector<std::string> & list,const char * str)19 size_t index_of(const std::vector<std::string>& list, const char* str) {
20     for (size_t i = 0; i < list.size(); ++i) {
21         if (list[i] == str)
22             return i;
23     }
24     std::string reason = "Could not find index_of() ";
25     reason += str;
26     throw std::runtime_error(reason);
27 }
28 
index_of(const std::vector<std::string> & list,const std::string & str)29 size_t index_of(const std::vector<std::string>& list, const std::string& str) {
30     for (size_t i = 0; i < list.size(); ++i) {
31         if (list[i] == str)
32             return i;
33     }
34     std::string reason = "Could not find index_of() ";
35     reason += str;
36     throw std::runtime_error(reason);
37 }
38 
index_of_icase(const std::vector<std::string> & list,const char * str)39 size_t index_of_icase(const std::vector<std::string>& list, const char* str) {
40     for (size_t i = 0; i < list.size(); ++i) {
41         if (tlx::equal_icase(list[i], str))
42             return i;
43     }
44     std::string reason = "Could not find index_of_icase() ";
45     reason += str;
46     throw std::runtime_error(reason);
47 }
48 
49 size_t
index_of_icase(const std::vector<std::string> & list,const std::string & str)50 index_of_icase(const std::vector<std::string>& list, const std::string& str) {
51     for (size_t i = 0; i < list.size(); ++i) {
52         if (tlx::equal_icase(list[i], str))
53             return i;
54     }
55     std::string reason = "Could not find index_of_icase() ";
56     reason += str;
57     throw std::runtime_error(reason);
58 }
59 
60 } // namespace tlx
61 
62 /******************************************************************************/
63