/*
  Copyright 2025 Matthias-Sebastian Schröder <matthias.schroeder@dolanghub.de>

  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

#include "dobase/export.hpp"

#define __NAMESPACE_DO dobase
#define __NAMESPACE_DO_START namespace __NAMESPACE_DO {
#define __NAMESPACE_END }

#ifdef dobase_EXPORTS
  // Members are public for internal purposes only
  #define public_internal public
  // Members are protected for internal purposes only
  #define protected_internal public
#else
  // Members are private for client applications
  #define public_internal private
  #define protected_internal private
#endif

#if defined(__GNUC__)
#define __forceinline __attribute__((always_inline)) inline
#endif
