1cb93a386Sopenharmony_ci/* 2cb93a386Sopenharmony_ci * Copyright 2021 Google LLC. 3cb93a386Sopenharmony_ci * 4cb93a386Sopenharmony_ci * Use of this source code is governed by a BSD-style license that can be 5cb93a386Sopenharmony_ci * found in the LICENSE file. 6cb93a386Sopenharmony_ci */ 7cb93a386Sopenharmony_ci#include "include/core/SkStringView.h" 8cb93a386Sopenharmony_ci 9cb93a386Sopenharmony_ci#include <algorithm> 10cb93a386Sopenharmony_ci 11cb93a386Sopenharmony_cinamespace skstd { 12cb93a386Sopenharmony_ci 13cb93a386Sopenharmony_cibool operator==(string_view left, string_view right) { 14cb93a386Sopenharmony_ci if (left.length() != right.length()) { 15cb93a386Sopenharmony_ci return false; 16cb93a386Sopenharmony_ci } 17cb93a386Sopenharmony_ci return !string_view::traits_type::compare(left.data(), right.data(), left.length()); 18cb93a386Sopenharmony_ci} 19cb93a386Sopenharmony_ci 20cb93a386Sopenharmony_cibool operator!=(string_view left, string_view right) { 21cb93a386Sopenharmony_ci return !(left == right); 22cb93a386Sopenharmony_ci} 23cb93a386Sopenharmony_ci 24cb93a386Sopenharmony_cibool operator<(string_view left, string_view right) { 25cb93a386Sopenharmony_ci int result = string_view::traits_type::compare(left.data(), right.data(), 26cb93a386Sopenharmony_ci std::min(left.length(), right.length())); 27cb93a386Sopenharmony_ci if (!result) { 28cb93a386Sopenharmony_ci result = left.length() - right.length(); 29cb93a386Sopenharmony_ci } 30cb93a386Sopenharmony_ci return result < 0; 31cb93a386Sopenharmony_ci} 32cb93a386Sopenharmony_ci 33cb93a386Sopenharmony_cibool operator<=(string_view left, string_view right) { 34cb93a386Sopenharmony_ci return !(left > right); 35cb93a386Sopenharmony_ci} 36cb93a386Sopenharmony_ci 37cb93a386Sopenharmony_cibool operator>(string_view left, string_view right) { 38cb93a386Sopenharmony_ci return right < left; 39cb93a386Sopenharmony_ci} 40cb93a386Sopenharmony_ci 41cb93a386Sopenharmony_cibool operator>=(string_view left, string_view right) { 42cb93a386Sopenharmony_ci return !(left < right); 43cb93a386Sopenharmony_ci} 44cb93a386Sopenharmony_ci 45cb93a386Sopenharmony_ci} // namespace skstd 46