chromium/third_party/protobuf/src/google/protobuf/util/internal/datapiece.cc

// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc.  All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
//     * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//     * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
//     * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

#include <google/protobuf/util/internal/datapiece.h>

#include <cmath>
#include <cstdint>
#include <limits>

#include <google/protobuf/struct.pb.h>
#include <google/protobuf/type.pb.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/stubs/status.h>
#include <google/protobuf/stubs/strutil.h>
#include <google/protobuf/util/internal/utility.h>
#include <google/protobuf/stubs/mathutil.h>

namespace google {
namespace protobuf {
namespace util {
namespace converter {

Status;

namespace {

template <typename To, typename From>
util::StatusOr<To> ValidateNumberConversion(To after, From before) {}

// For general conversion between
//     int32, int64, uint32, uint64, double and float
// except conversion between double and float.
template <typename To, typename From>
util::StatusOr<To> NumberConvertAndCheck(From before) {}

// For conversion to integer types (int32, int64, uint32, uint64) from floating
// point types (double, float) only.
template <typename To, typename From>
util::StatusOr<To> FloatingPointToIntConvertAndCheck(From before) {}

// For conversion between double and float only.
util::StatusOr<double> FloatToDouble(float before) {}

util::StatusOr<float> DoubleToFloat(double before) {}

}  // namespace

util::StatusOr<int32_t> DataPiece::ToInt32() const {}

util::StatusOr<uint32_t> DataPiece::ToUint32() const {}

util::StatusOr<int64_t> DataPiece::ToInt64() const {}

util::StatusOr<uint64_t> DataPiece::ToUint64() const {}

util::StatusOr<double> DataPiece::ToDouble() const {}

util::StatusOr<float> DataPiece::ToFloat() const {}

util::StatusOr<bool> DataPiece::ToBool() const {}

util::StatusOr<std::string> DataPiece::ToString() const {}

std::string DataPiece::ValueAsStringOrDefault(
    StringPiece default_string) const {}

util::StatusOr<std::string> DataPiece::ToBytes() const {}

util::StatusOr<int> DataPiece::ToEnum(const google::protobuf::Enum* enum_type,
                                      bool use_lower_camel_for_enums,
                                      bool case_insensitive_enum_parsing,
                                      bool ignore_unknown_enum_values,
                                      bool* is_unknown_enum_value) const {}

template <typename To>
util::StatusOr<To> DataPiece::GenericConvert() const {}

template <typename To>
util::StatusOr<To> DataPiece::StringToNumber(bool (*func)(StringPiece,
                                                          To*)) const {}

bool DataPiece::DecodeBase64(StringPiece src, std::string* dest) const {}

void DataPiece::InternalCopy(const DataPiece& other) {}

}  // namespace converter
}  // namespace util
}  // namespace protobuf
}  // namespace google