sapling/eden/fs/store/hg/HgImportPyError.cpp
Adam Simpkins 8352b88299 include the exception type name in hg_import_helper.py errors
Summary:
Update hg_import_helper.py to include the exception type name in error
responses.  Add a new HgImportPyError class in the C++ code to include both the
python exception type name and the message string.

In the future this will give us the ability to perform special handling based
on the python exception type, rather than just on the message contents.

Reviewed By: bolinfest

Differential Revision: D6333613

fbshipit-source-id: 1074bbf9fa25ee8b1abeadc38b1a4f569bc18d13
2017-11-15 13:31:58 -08:00

30 lines
918 B
C++

/*
* Copyright (c) 2004-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
*/
#include "eden/fs/store/hg/HgImportPyError.h"
#include <folly/Conv.h>
using folly::StringPiece;
using std::string;
namespace facebook {
namespace eden {
constexpr folly::StringPiece HgImportPyError::kSeparator;
HgImportPyError::HgImportPyError(StringPiece errorType, StringPiece message)
: fullMessage_{folly::to<string>(errorType, kSeparator, message)},
errorType_{fullMessage_.data(), errorType.size()},
message_{fullMessage_.data() + errorType.size() + kSeparator.size(),
fullMessage_.data() + fullMessage_.size()} {}
} // namespace eden
} // namespace facebook