LCOV - code coverage report
Current view: top level - source/third_party/tinygettext/include/tinygettext - plural_forms.hpp (source / functions) Hit Total Coverage
Test: 0 A.D. test coverage report Lines: 0 14 0.0 %
Date: 2023-01-19 00:18:29 Functions: 0 7 0.0 %

          Line data    Source code
       1             : // tinygettext - A gettext replacement that works directly on .po files
       2             : // Copyright (c) 2006 Ingo Ruhnke <grumbel@gmail.com>
       3             : //
       4             : // This software is provided 'as-is', without any express or implied
       5             : // warranty. In no event will the authors be held liable for any damages
       6             : // arising from the use of this software.
       7             : //
       8             : // Permission is granted to anyone to use this software for any purpose,
       9             : // including commercial applications, and to alter it and redistribute it
      10             : // freely, subject to the following restrictions:
      11             : //
      12             : // 1. The origin of this software must not be misrepresented; you must not
      13             : //    claim that you wrote the original software. If you use this software
      14             : //    in a product, an acknowledgement in the product documentation would be
      15             : //    appreciated but is not required.
      16             : // 2. Altered source versions must be plainly marked as such, and must not be
      17             : //    misrepresented as being the original software.
      18             : // 3. This notice may not be removed or altered from any source distribution.
      19             : 
      20             : #ifndef HEADER_TINYGETTEXT_PLURAL_FORMS_HPP
      21             : #define HEADER_TINYGETTEXT_PLURAL_FORMS_HPP
      22             : 
      23             : #include <string>
      24             : 
      25             : namespace tinygettext {
      26             : 
      27             : typedef unsigned int (*PluralFunc)(int n);
      28             : 
      29             : class PluralForms
      30             : {
      31             : private:
      32             :   unsigned int nplural;
      33             :   PluralFunc   plural;
      34             : 
      35             : public:
      36             :   static PluralForms from_string(const std::string& str);
      37             : 
      38           0 :   PluralForms()
      39           0 :     : nplural(),
      40           0 :       plural()
      41           0 :   {}
      42             : 
      43           0 :   PluralForms(unsigned int nplural_, PluralFunc plural_)
      44           0 :     : nplural(nplural_),
      45           0 :       plural(plural_)
      46           0 :   {}
      47             : 
      48           0 :   unsigned int get_nplural() const { return nplural; }
      49           0 :   unsigned int get_plural(int n) const { if (plural) return plural(n); else return 0; }
      50             : 
      51           0 :   bool operator==(const PluralForms& other) const { return nplural == other.nplural && plural == other.plural; }
      52           0 :   bool operator!=(const PluralForms& other) const { return !(*this == other); }
      53             : 
      54           0 :   explicit operator bool() const {
      55           0 :     return plural != nullptr;
      56             :   }
      57             : };
      58             : 
      59             : } // namespace tinygettext
      60             : 
      61             : #endif
      62             : 
      63             : /* EOF */

Generated by: LCOV version 1.13