LCOV - code coverage report
Current view: top level - gfx/skia/skia/src/sksl - SkSLString.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 13 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 11 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright 2017 Google Inc.
       3             :  *
       4             :  * Use of this source code is governed by a BSD-style license that can be
       5             :  * found in the LICENSE file.
       6             :  */
       7             : 
       8             : #ifndef SKSL_STRING
       9             : #define SKSL_STRING
      10             : 
      11             : 
      12             : #ifdef SKSL_STANDALONE
      13             :     #define SKSL_STRING_BASE std::string
      14             :     #include <string>
      15             : #else
      16             :     #define SKSL_STRING_BASE SkString
      17             :     #include "SkString.h"
      18             : #endif
      19             : 
      20             : namespace SkSL {
      21             : 
      22           0 : class String : public SKSL_STRING_BASE {
      23             : public:
      24           0 :     String() = default;
      25           0 :     String(const String&) = default;
      26           0 :     String(String&&) = default;
      27             :     String& operator=(const String&) = default;
      28             :     String& operator=(String&&) = default;
      29             : 
      30             : #ifndef SKSL_STANDALONE
      31           0 :     String(const SkString& s)
      32           0 :     : INHERITED(s) {}
      33             : #endif
      34             : 
      35           0 :     String(const char* s)
      36           0 :     : INHERITED(s) {}
      37             : 
      38           0 :     String(const char* s, size_t size)
      39           0 :     : INHERITED(s, size) {}
      40             : 
      41             :     static String printf(const char* fmt, ...);
      42             : 
      43             : #ifdef SKSL_STANDALONE
      44             :     void appendf(const char* fmt, ...);
      45             : #endif
      46             :     void vappendf(const char* fmt, va_list va);
      47             : 
      48             :     bool startsWith(const char* s) const;
      49             :     bool endsWith(const char* s) const;
      50             : 
      51             :     String operator+(const char* s) const;
      52             :     String operator+(const String& s) const;
      53             :     bool operator==(const char* s) const;
      54             :     bool operator!=(const char* s) const;
      55             :     bool operator==(const String& s) const;
      56             :     bool operator!=(const String& s) const;
      57             :     friend String operator+(const char* s1, const String& s2);
      58             :     friend bool operator==(const char* s1, const String& s2);
      59             :     friend bool operator!=(const char* s1, const String& s2);
      60             : 
      61             : private:
      62             :     typedef SKSL_STRING_BASE INHERITED;
      63             : };
      64             : 
      65             : String operator+(const char* s1, const String& s2);
      66             : bool operator!=(const char* s1, const String& s2);
      67             : 
      68             : String to_string(double value);
      69             : 
      70             : String to_string(int32_t value);
      71             : 
      72             : String to_string(uint32_t value);
      73             : 
      74             : String to_string(int64_t value);
      75             : 
      76             : String to_string(uint64_t value);
      77             : 
      78             : int stoi(String s);
      79             : 
      80             : double stod(String s);
      81             : 
      82             : long stol(String s);
      83             : 
      84             : } // namespace
      85             : 
      86             : #ifdef SKSL_STANDALONE
      87             : namespace std {
      88             :     template<> struct hash<SkSL::String> {
      89             :         size_t operator()(const SkSL::String& s) const {
      90             :             return hash<std::string>{}(s);
      91             :         }
      92             :     };
      93             : } // namespace
      94             : #else
      95             : #include "SkOpts.h"
      96             : namespace std {
      97           0 :     template<> struct hash<SkSL::String> {
      98           0 :         size_t operator()(const SkSL::String& s) const {
      99           0 :             return SkOpts::hash_fn(s.c_str(), s.size(), 0);
     100             :         }
     101             :     };
     102             : } // namespace
     103             : #endif // SKIA_STANDALONE
     104             : 
     105             : #endif

Generated by: LCOV version 1.13