summaryrefslogtreecommitdiffstats
path: root/contrib/libs/apache/arrow_next/cpp/src/arrow/status_internal.h
diff options
context:
space:
mode:
authorrobot-piglet <[email protected]>2025-08-14 11:26:15 +0300
committerrobot-piglet <[email protected]>2025-08-14 12:06:36 +0300
commitdc2bf727ea4698fa382f0f8623a8854c4900e212 (patch)
treea621e92060fd7560066f33a323b4b8aca34f1e36 /contrib/libs/apache/arrow_next/cpp/src/arrow/status_internal.h
parent322ee7d149464c6f18d6a330d937227cb022b9f3 (diff)
Intermediate changes
commit_hash:746e9b78ab4c78ba4f30511f1fa9330c0d56a406
Diffstat (limited to 'contrib/libs/apache/arrow_next/cpp/src/arrow/status_internal.h')
-rw-r--r--contrib/libs/apache/arrow_next/cpp/src/arrow/status_internal.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/contrib/libs/apache/arrow_next/cpp/src/arrow/status_internal.h b/contrib/libs/apache/arrow_next/cpp/src/arrow/status_internal.h
new file mode 100644
index 00000000000..32b0505a114
--- /dev/null
+++ b/contrib/libs/apache/arrow_next/cpp/src/arrow/status_internal.h
@@ -0,0 +1,45 @@
+#pragma clang system_header
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+#pragma once
+
+#include "arrow/status.h"
+#include "arrow/util/logging.h"
+
+namespace arrow20::internal {
+
+class StatusConstant {
+ public:
+ StatusConstant(StatusCode code, std::string msg,
+ std::shared_ptr<StatusDetail> detail = nullptr)
+ : state_{code, /*is_constant=*/true, std::move(msg), std::move(detail)} {
+ ARROW_CHECK_NE(code, StatusCode::OK)
+ << "StatusConstant is not intended for use with OK status codes";
+ }
+
+ operator Status() { // NOLINT(runtime/explicit)
+ Status st;
+ st.state_ = &state_;
+ return st;
+ }
+
+ private:
+ Status::State state_;
+};
+
+} // namespace arrow20::internal