blob: b2c7760b2e5b33e0492cb1996c9bf243be197e58 [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/developer/debug/shared/logging/file_line_function.h"
#include "src/lib/files/path.h"
#include "src/lib/fxl/strings/string_printf.h"
namespace debug_ipc {
FileLineFunction::FileLineFunction() = default;
FileLineFunction::FileLineFunction(std::string file, int line, std::string function)
: file_(std::move(file)), function_(std::move(function)), line_(line) {}
FileLineFunction::~FileLineFunction() = default;
bool operator<(const FileLineFunction& a, const FileLineFunction& b) {
if (a.line() != b.line())
return a.line() < b.line();
return a.file() < b.file();
}
std::string FileLineFunction::ToString() const {
return fxl::StringPrintf("[%s:%d][%s]", file_.data(), line_, function_.data());
}
bool operator==(const FileLineFunction& a, const FileLineFunction& b) {
return a.line() == b.line() && a.file() == b.file();
}
bool operator!=(const FileLineFunction& a, const FileLineFunction& b) { return !operator==(a, b); }
} // namespace debug_ipc