/* * 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. */ #pragma once namespace folly { /* * flags given by the application for write* calls */ enum class WriteFlags : uint32_t { … }; /* * union operator */ constexpr WriteFlags operator|(WriteFlags a, WriteFlags b) { … } /* * compound assignment union operator */ constexpr WriteFlags& operator|=(WriteFlags& a, WriteFlags b) { … } /* * intersection operator */ constexpr WriteFlags operator&(WriteFlags a, WriteFlags b) { … } /* * compound assignment intersection operator */ constexpr WriteFlags& operator&=(WriteFlags& a, WriteFlags b) { … } /* * exclusion parameter */ constexpr WriteFlags operator~(WriteFlags a) { … } /* * unset operator */ constexpr WriteFlags unSet(WriteFlags a, WriteFlags b) { … } /* * inclusion operator */ constexpr bool isSet(WriteFlags a, WriteFlags b) { … } /** * Write flags that are related to timestamping. */ constexpr WriteFlags kWriteFlagsForTimestamping = …; } // namespace folly