#pragma once
#ifndef SLED_SLED_H
#define SLED_SLED_H

// thrid_party
#include "sled/nonstd/cxxopts.h"
#include "sled/nonstd/expected.h"
#include "sled/nonstd/fsm.h"
#include "sled/nonstd/inja.h"
#include "sled/nonstd/pugixml/pugixml.hpp"
#include "sled/nonstd/string_view.h"
#include "toml.hpp"
#include <asio.hpp>

#include "sled/cache/cache.h"

#include "sled/config.h"
// experimental
#include "sled/experimental/design_patterns/dispatcher.h"

// event_bus
#include "sled/event_bus/event_bus.h"

// filesystem
#include "sled/filesystem/path.h"
#include "sled/filesystem/temporary_file.h"

// futures
#include "sled/futures/future.h"
#include "sled/ioc/ioc.h"

// lang
#include "sled/lang/attributes.h"

// log
#include "sled/log/log.h"

// network
#include "sled/network/async_resolver.h"
#include "sled/network/async_resolver_interface.h"
#include "sled/network/ip_address.h"
#include "sled/network/null_socket_server.h"
#include "sled/network/physical_socket_server.h"
#include "sled/network/rpc.h"
#include "sled/network/socket.h"
#include "sled/network/socket_address.h"
#include "sled/network/socket_factory.h"
#include "sled/network/socket_server.h"

// numerics
#include "sled/numerics/divide_round.h"

// profiling
#include "sled/profiling/profiling.h"

// strings
#include "sled/strings/base64.h"
#include "sled/strings/utils.h"

// synchorization
#include "sled/synchronization/call_once.h"
#include "sled/synchronization/event.h"
#include "sled/synchronization/mutex.h"
#include "sled/synchronization/one_time_event.h"
#include "sled/synchronization/sequence_checker.h"
#include "sled/synchronization/thread_local.h"
// system
// #include "sled/system/fiber/scheduler.h"
// #include "sled/system/fiber/wait_group.h"
#include "sled/system/location.h"
#include "sled/system/thread.h"
#include "sled/system/thread_pool.h"

// timer
#include "sled/timer/task_queue_timeout.h"
#include "sled/timer/timeout.h"
#include "sled/timer/timer.h"

// utility
#include "sled/utility/move_on_copy.h"

// other
#include "sled/any.h"
#include "sled/apply.h"
#include "sled/buffer.h"
#include "sled/byte_order.h"
#include "sled/cleanup.h"
#include "sled/make_ref_counted.h"
#include "sled/make_unique.h"
#include "sled/operations_chain.h"
#include "sled/optional.h"
#include "sled/random.h"
#include "sled/ref_count.h"
#include "sled/ref_counted_base.h"
#include "sled/ref_counted_object.h"
#include "sled/ref_counter.h"
#include "sled/scoped_refptr.h"
// #include "sled/sequence_checker.h"
#include "sled/sigslot.h"
#include "sled/status.h"
#include "sled/status_or.h"
#include "sled/system_time.h"
#include "sled/time_utils.h"
#include "sled/variant.h"

// uri
#include "sled/uri.h"

// testing
// #include "sled/testing/test.h"

// debugging

#endif//  SLED_SLED_H
