[ # ============================================================================ # WEBSERV PROJECT IWYU MAPPINGS # Based on preferences: Forward declarations in headers, central common header, # umbrella headers for modules, strict standard library includes, stdexcept # ============================================================================ # Standard C++ library private implementation mappings { include: ["", "private", "", "public"] }, { include: ["", "private", "", "public"] }, { include: ["", "private", "", "public"] }, { include: ["", "private", "", "public"] }, { include: ["", "private", "", "public"] }, { include: ["", "private", "", "public"] }, { include: ["", "private", "", "public"] }, { include: ["", "private", "", "public"] }, # Standard library strict mappings (preference 5C - very strict) { include: ["", "public", "", "public"] }, { symbol: ["std::cout", "private", "", "public"] }, { symbol: ["std::cerr", "private", "", "public"] }, { symbol: ["std::cin", "private", "", "public"] }, { symbol: ["std::endl", "private", "", "public"] }, { symbol: ["std::vector", "private", "", "public"] }, { symbol: ["std::string", "private", "", "public"] }, { symbol: ["std::map", "private", "", "public"] }, { symbol: ["std::unordered_map", "private", "", "public"] }, { symbol: ["std::unique_ptr", "private", "", "public"] }, { symbol: ["std::shared_ptr", "private", "", "public"] }, { symbol: ["std::make_unique", "private", "", "public"] }, { symbol: ["std::make_shared", "private", "", "public"] }, # System headers for socket programming { include: ["", "public", "", "public"] }, { include: ["", "public", "", "public"] }, { include: ["", "public", "", "public"] }, { include: ["", "public", "", "public"] }, { include: ["", "public", "", "public"] }, { include: ["", "public", "", "public"] }, # Error handling (preference 6A - stdexcept) { symbol: ["std::runtime_error", "private", "", "public"] }, { symbol: ["std::logic_error", "private", "", "public"] }, { symbol: ["std::invalid_argument", "private", "", "public"] }, { symbol: ["std::out_of_range", "private", "", "public"] }, # ============================================================================ # PROJECT HEADER MAPPINGS - Standardized on <> angle brackets # ============================================================================ # Convert quoted includes to angle brackets for consistency { include: ["\"webserv/log/Log.hpp\"", "public", "", "public"] }, { include: ["\"webserv/log/Channel.hpp\"", "public", "", "public"] }, { include: ["\"webserv/log/StdoutChannel.hpp\"", "public", "", "public"] }, { include: ["\"webserv/log/FileChannel.hpp\"", "public", "", "public"] }, { include: ["\"webserv/http/HttpRequest.hpp\"", "public", "", "public"] }, { include: ["\"webserv/http/HttpResponse.hpp\"", "public", "", "public"] }, { include: ["\"webserv/http/HttpHeaders.hpp\"", "public", "", "public"] }, { include: ["\"webserv/http/HttpConstants.hpp\"", "public", "", "public"] }, { include: ["\"webserv/config/ConfigManager.hpp\"", "public", "", "public"] }, { include: ["\"webserv/config/ServerConfig.hpp\"", "public", "", "public"] }, { include: ["\"webserv/config/LocationConfig.hpp\"", "public", "", "public"] }, { include: ["\"webserv/config/utils.hpp\"", "public", "", "public"] }, { include: ["\"webserv/server/Server.hpp\"", "public", "", "public"] }, { include: ["\"webserv/client/Client.hpp\"", "public", "", "public"] }, { include: ["\"webserv/socket/Socket.hpp\"", "public", "", "public"] }, { include: ["\"webserv/router/Router.hpp\"", "public", "", "public"] }, { include: ["\"webserv/handler/CgiHandler.hpp\"", "public", "", "public"] }, { include: ["\"webserv/handler/FileHandler.hpp\"", "public", "", "public"] }, { include: ["\"webserv/handler/ErrorHandler.hpp\"", "public", "", "public"] }, # ============================================================================ # FORWARD DECLARATION PREFERENCES # ============================================================================ # Suggest forward declarations instead of full includes in headers where possible { symbol: ["Client", "private", "", "public"] }, { symbol: ["Server", "private", "", "public"] }, { symbol: ["HttpRequest", "private", "", "public"] }, { symbol: ["HttpResponse", "private", "", "public"] }, { symbol: ["HttpHeaders", "private", "", "public"] }, { symbol: ["ServerConfig", "private", "", "public"] }, { symbol: ["ConfigManager", "private", "", "public"] }, { symbol: ["LocationConfig", "private", "", "public"] }, { symbol: ["Socket", "private", "", "public"] }, { symbol: ["Router", "private", "", "public"] }, { symbol: ["Channel", "private", "", "public"] } ]