|  | // Copyright 2015 The Chromium 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 "tools/gn/lib_file.h" | 
|  |  | 
|  | #include "base/logging.h" | 
|  |  | 
|  | LibFile::LibFile() = default; | 
|  |  | 
|  | LibFile::LibFile(const SourceFile& source_file) : source_file_(source_file) {} | 
|  |  | 
|  | LibFile::LibFile(const base::StringPiece& lib_name) | 
|  | : name_(lib_name.data(), lib_name.size()) { | 
|  | DCHECK(!lib_name.empty()); | 
|  | } | 
|  |  | 
|  | void LibFile::Swap(LibFile* other) { | 
|  | name_.swap(other->name_); | 
|  | source_file_.swap(other->source_file_); | 
|  | } | 
|  |  | 
|  | const std::string& LibFile::value() const { | 
|  | return is_source_file() ? source_file_.value() : name_; | 
|  | } | 
|  |  | 
|  | const SourceFile& LibFile::source_file() const { | 
|  | DCHECK(is_source_file()); | 
|  | return source_file_; | 
|  | } |