/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * Licensed 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. */ // Operations supported by all ThriftType values. #pragma once #include #include namespace apache { namespace thrift { namespace op { /// Returns the default for the given type. /// /// Some adapted types might not have default constructor. This allows /// default constructing those adapted types. /// /// For example: /// * create() -> 0 /// * create>() -> Adapted{} /// * create>>(Struct) /// -> AdaptedWithContext{}; template inline constexpr detail::Create create{}; /// Ensures the given field. If the field doesn't exist, emplaces the field. /// For example: /// * ensure(foo) /// // calls foo.field_ref().ensure() template inline constexpr detail::Ensure ensure{}; } // namespace op } // namespace thrift } // namespace apache