Compare commits
	
		
			92 Commits
		
	
	
		
			stable
			...
			d141154a45
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| d141154a45 | |||
| 6170647c0c | |||
| 48e45c7dd6 | |||
| 5d3d9229b7 | |||
| d54e93d836 | |||
| 830f8fe3e4 | |||
| 7b638538aa | |||
| 2016f6e605 | |||
| 240effd305 | |||
| 6bc629e02c | |||
| f6f2acd67b | |||
| 0146d38405 | |||
| 75d8e7bb89 | |||
| 6b53eaf6b1 | |||
| 16c32273ac | |||
| 1567a6e29d | |||
| 89d543bcbc | |||
| d68e64931b | |||
| 1cbc576286 | |||
| 500b93562c | |||
| 800ca85176 | |||
| cc466a9f1d | |||
| 9d1155843e | |||
| a2139c09b2 | |||
| a3e5f27ab8 | |||
| 643f95ec80 | |||
| 6924147686 | |||
| 6e2b4fa7b4 | |||
| 4e5c749918 | |||
| 66229de77f | |||
| 7eb37c5318 | |||
| 7a21b20711 | |||
| 894be237f2 | |||
| 92e9d9cbfc | |||
| b29b9a9b3a | |||
| 721f844214 | |||
| a3d6a58cc8 | |||
| e598e7fe27 | |||
| ba9e720f9f | |||
| 8e816a261f | |||
| 5b9929ab3d | |||
| ceb54b3f1b | |||
| 8764444758 | |||
| ce9a0b1fdb | |||
| f7a468ea1e | |||
| 861d177a27 | |||
| 3936756b36 | |||
| 3e78ec3fe5 | |||
| 3c3d53b40c | |||
| 151d7c5736 | |||
| 4e4d8d2c3f | |||
| 03d1fd2857 | |||
| 6701decc91 | |||
| 6cff526647 | |||
| dd50bd0249 | |||
| 55a1660242 | |||
| ed365dfef5 | |||
| 23a09e4a13 | |||
| b69e7ebb98 | |||
| 418d6e3f22 | |||
| c44d8678cb | |||
| eb4cd7106d | |||
| d259770f32 | |||
| 80bad608f7 | |||
| 2bce9a2baf | |||
| 791b7746f3 | |||
| 842e3587fd | |||
| 318e79004b | |||
| 9f338a7429 | |||
| 645e48af7b | |||
| ef92c8df13 | |||
| 849d50be8e | |||
| 845092f114 | |||
| 75819a1797 | |||
| d66da85753 | |||
| 98ddb08abd | |||
| 8d1701b0bb | |||
| 1048e522fd | |||
| ee59da4aa3 | |||
| 1ba64cb5d8 | |||
| 462bebf6dd | |||
| e3f84c4e75 | |||
| 6837a0556d | |||
| ede2c8ca37 | |||
| f50367f7d5 | |||
| e758e03d2b | |||
| 835e3270ce | |||
| 480dd5ece4 | |||
| dba6bb5800 | |||
| 40a456e54a | |||
| bf5be00c12 | |||
| dc7c2559d6 | 
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -6,7 +6,7 @@
 | 
			
		||||
.mypy_cache
 | 
			
		||||
.stfolder
 | 
			
		||||
.stignore
 | 
			
		||||
scripts/__pycache__
 | 
			
		||||
util/scripts/__pycache__
 | 
			
		||||
pyenv
 | 
			
		||||
CMakeLists.txt.user
 | 
			
		||||
ROM.oxfs
 | 
			
		||||
 
 | 
			
		||||
@@ -2,4 +2,4 @@
 | 
			
		||||
source:
 | 
			
		||||
- src
 | 
			
		||||
copyright_notice: |-
 | 
			
		||||
  Copyright 2016 - 2024 Gary Talent (gary@drinkingtea.net). All rights reserved.
 | 
			
		||||
  Copyright 2016 - 2025 Gary Talent (gary@drinkingtea.net). All rights reserved.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								Makefile
									
									
									
									
									
								
							@@ -1,26 +1,31 @@
 | 
			
		||||
BC_VAR_PROJECT_NAME=nostalgia
 | 
			
		||||
BC_VAR_PROJECT_NAME_CAP=Nostalgia
 | 
			
		||||
BC_VAR_DEVENV_ROOT=util
 | 
			
		||||
BUILDCORE_PATH=deps/buildcore
 | 
			
		||||
include ${BUILDCORE_PATH}/base.mk
 | 
			
		||||
 | 
			
		||||
ifeq ($(BC_VAR_OS),darwin)
 | 
			
		||||
	NOSTALGIA_STUDIO=./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME_CAP}Studio.app/Contents/MacOS/${BC_VAR_PROJECT_NAME_CAP}Studio
 | 
			
		||||
	PROJECT_STUDIO=./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME_CAP}Studio.app/Contents/MacOS/${BC_VAR_PROJECT_NAME_CAP}Studio
 | 
			
		||||
	MGBA=/Applications/mGBA.app/Contents/MacOS/mGBA
 | 
			
		||||
else
 | 
			
		||||
	NOSTALGIA_STUDIO=./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME_CAP}Studio
 | 
			
		||||
	PROJECT_STUDIO=./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME_CAP}Studio
 | 
			
		||||
	MGBA=mgba-qt
 | 
			
		||||
endif
 | 
			
		||||
PROJECT_PLAYER=./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME_CAP}
 | 
			
		||||
 | 
			
		||||
.PHONY: pkg-gba
 | 
			
		||||
pkg-gba: build
 | 
			
		||||
	${BC_CMD_ENVRUN} ${BC_PY3} ./scripts/pkg-gba.py sample_project ${BC_VAR_PROJECT_NAME}
 | 
			
		||||
	${BC_CMD_ENVRUN} ${BC_PY3} ./util/scripts/pkg-gba.py sample_project ${BC_VAR_PROJECT_NAME}
 | 
			
		||||
 | 
			
		||||
.PHONY: build-player
 | 
			
		||||
build-player:
 | 
			
		||||
	${BC_CMD_CMAKE_BUILD} ${BC_VAR_BUILD_PATH} ${BC_VAR_PROJECT_NAME_CAP}
 | 
			
		||||
.PHONY: run
 | 
			
		||||
run: build
 | 
			
		||||
	./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME} sample_project
 | 
			
		||||
run: build-player
 | 
			
		||||
	${PROJECT_PLAYER} sample_project
 | 
			
		||||
.PHONY: run-studio
 | 
			
		||||
run-studio: build
 | 
			
		||||
	${NOSTALGIA_STUDIO}
 | 
			
		||||
	${PROJECT_STUDIO}
 | 
			
		||||
.PHONY: gba-run
 | 
			
		||||
gba-run: pkg-gba
 | 
			
		||||
	${MGBA} ${BC_VAR_PROJECT_NAME}.gba
 | 
			
		||||
@@ -29,7 +34,7 @@ debug: build
 | 
			
		||||
	${BC_CMD_HOST_DEBUGGER} ./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME} sample_project
 | 
			
		||||
.PHONY: debug-studio
 | 
			
		||||
debug-studio: build
 | 
			
		||||
	${BC_CMD_HOST_DEBUGGER} ${NOSTALGIA_STUDIO}
 | 
			
		||||
	${BC_CMD_HOST_DEBUGGER} ${PROJECT_STUDIO}
 | 
			
		||||
 | 
			
		||||
.PHONY: configure-gba
 | 
			
		||||
configure-gba:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								deps/gbabuildcore/base.cmake
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								deps/gbabuildcore/base.cmake
									
									
									
									
										vendored
									
									
								
							@@ -1,8 +1,8 @@
 | 
			
		||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake/modules)
 | 
			
		||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -nostdlib")
 | 
			
		||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -nostdinc++")
 | 
			
		||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-unwind-tables")
 | 
			
		||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
 | 
			
		||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-unwind-tables")
 | 
			
		||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
 | 
			
		||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
 | 
			
		||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing")
 | 
			
		||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mthumb-interwork")
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								deps/glad/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								deps/glad/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							@@ -1,2 +1,11 @@
 | 
			
		||||
add_library(glad OBJECT src/glad.c)
 | 
			
		||||
target_include_directories(glad PUBLIC include)
 | 
			
		||||
add_library(glad src/glad.c)
 | 
			
		||||
 | 
			
		||||
target_include_directories(glad PUBLIC include)
 | 
			
		||||
 | 
			
		||||
install(
 | 
			
		||||
	TARGETS
 | 
			
		||||
		glad
 | 
			
		||||
	DESTINATION
 | 
			
		||||
		LIBRARY DESTINATION lib
 | 
			
		||||
		ARCHIVE DESTINATION lib
 | 
			
		||||
)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								deps/imgui/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								deps/imgui/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							@@ -6,7 +6,7 @@ endif()
 | 
			
		||||
# DrinkingTea: end
 | 
			
		||||
 | 
			
		||||
add_library(
 | 
			
		||||
	imgui OBJECT
 | 
			
		||||
	imgui
 | 
			
		||||
		imgui.cpp
 | 
			
		||||
		imgui_demo.cpp
 | 
			
		||||
		imgui_draw.cpp
 | 
			
		||||
@@ -19,4 +19,12 @@ add_library(
 | 
			
		||||
target_include_directories(
 | 
			
		||||
	imgui SYSTEM PUBLIC
 | 
			
		||||
		.
 | 
			
		||||
)
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
install(
 | 
			
		||||
	TARGETS
 | 
			
		||||
		imgui
 | 
			
		||||
	DESTINATION
 | 
			
		||||
		LIBRARY DESTINATION lib
 | 
			
		||||
		ARCHIVE DESTINATION lib
 | 
			
		||||
)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/.liccor.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/.liccor.yml
									
									
									
									
										vendored
									
									
								
							@@ -2,7 +2,7 @@
 | 
			
		||||
source:
 | 
			
		||||
- src
 | 
			
		||||
copyright_notice: |-
 | 
			
		||||
  Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
  Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 | 
			
		||||
  This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
  License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/clargs/clargs.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/clargs/clargs.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/clargs/clargs.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/clargs/clargs.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/claw/claw.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/claw/claw.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/claw/format.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/claw/format.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/claw/read.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/claw/read.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/claw/read.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/claw/read.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/claw/readclaw.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/claw/readclaw.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/claw/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/claw/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/claw/write.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/claw/write.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/claw/write.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/claw/write.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/event/event.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/event/event.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/event/signal.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/event/signal.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								deps/ox/src/ox/event/signal.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								deps/ox/src/ox/event/signal.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
@@ -215,7 +215,7 @@ Error Signal<Args...>::emitCheckError(Args... args) const noexcept {
 | 
			
		||||
		}
 | 
			
		||||
		return ox::Error(0);
 | 
			
		||||
	} catch (const ox::Exception &ex) {
 | 
			
		||||
		return ox::Error(ex.file, ex.line, ex.errCode, ex.msg);
 | 
			
		||||
		return ox::Error(ex.errCode, ex.msg, ex.src);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/event/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/event/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/fs/filesystem/directory.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/fs/filesystem/directory.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/fs/filesystem/directory.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/fs/filesystem/directory.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								deps/ox/src/ox/fs/filesystem/filesystem.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								deps/ox/src/ox/fs/filesystem/filesystem.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
@@ -63,18 +63,6 @@ Error FileSystem::read(const FileAddress &addr, std::size_t readStart, std::size
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Error FileSystem::remove(const FileAddress &addr, bool recursive) noexcept {
 | 
			
		||||
	switch (addr.type()) {
 | 
			
		||||
		case FileAddressType::Inode:
 | 
			
		||||
			return remove(addr.getInode().value, recursive);
 | 
			
		||||
		case FileAddressType::ConstPath:
 | 
			
		||||
		case FileAddressType::Path:
 | 
			
		||||
			return remove(StringView(addr.getPath().value), recursive);
 | 
			
		||||
		default:
 | 
			
		||||
			return ox::Error(1);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Error FileSystem::write(const FileAddress &addr, const void *buffer, uint64_t size, FileType fileType) noexcept {
 | 
			
		||||
	switch (addr.type()) {
 | 
			
		||||
		case FileAddressType::Inode:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										52
									
								
								deps/ox/src/ox/fs/filesystem/filesystem.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										52
									
								
								deps/ox/src/ox/fs/filesystem/filesystem.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
@@ -57,9 +57,9 @@ class FileSystem {
 | 
			
		||||
 | 
			
		||||
		virtual Result<Vector<String>> ls(StringViewCR dir) const noexcept = 0;
 | 
			
		||||
 | 
			
		||||
		virtual Error remove(StringViewCR path, bool recursive) noexcept = 0;
 | 
			
		||||
 | 
			
		||||
		Error remove(const FileAddress &addr, bool recursive = false) noexcept;
 | 
			
		||||
		Error remove(StringViewCR path, bool recursive = false) noexcept {
 | 
			
		||||
			return removePath(path, recursive);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		virtual Error resize(uint64_t size, void *buffer) noexcept = 0;
 | 
			
		||||
 | 
			
		||||
@@ -142,6 +142,8 @@ class FileSystem {
 | 
			
		||||
 | 
			
		||||
		virtual Error readFileInodeRange(uint64_t inode, std::size_t readStart, std::size_t readSize, void *buffer, std::size_t *size) noexcept = 0;
 | 
			
		||||
 | 
			
		||||
		virtual Error removePath(StringViewCR path, bool recursive) noexcept = 0;
 | 
			
		||||
 | 
			
		||||
		virtual Error writeFilePath(StringViewCR path, const void *buffer, uint64_t size, FileType fileType) noexcept = 0;
 | 
			
		||||
 | 
			
		||||
		virtual Error writeFileInode(uint64_t inode, const void *buffer, uint64_t size, FileType fileType) noexcept = 0;
 | 
			
		||||
@@ -209,6 +211,8 @@ class FileSystemTemplate: public MemFS {
 | 
			
		||||
 | 
			
		||||
		Error readFileInodeRange(uint64_t inode, std::size_t readStart, std::size_t readSize, void *buffer, std::size_t *size) noexcept override;
 | 
			
		||||
 | 
			
		||||
		Error removePath(StringViewCR path, bool recursive) noexcept override;
 | 
			
		||||
 | 
			
		||||
		Result<const char*> directAccessInode(uint64_t) const noexcept override;
 | 
			
		||||
 | 
			
		||||
		Result<Vector<String>> ls(StringViewCR dir) const noexcept override;
 | 
			
		||||
@@ -216,8 +220,6 @@ class FileSystemTemplate: public MemFS {
 | 
			
		||||
		template<typename F>
 | 
			
		||||
		Error ls(StringViewCR path, F cb) const;
 | 
			
		||||
 | 
			
		||||
		Error remove(StringViewCR path, bool recursive) noexcept override;
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * Resizes FileSystem to minimum possible size.
 | 
			
		||||
		 */
 | 
			
		||||
@@ -356,6 +358,25 @@ Error FileSystemTemplate<FileStore, Directory>::readFileInodeRange(uint64_t inod
 | 
			
		||||
	return m_fs.read(inode, readStart, readSize, reinterpret_cast<uint8_t*>(buffer), size);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template<typename FileStore, typename Directory>
 | 
			
		||||
Error FileSystemTemplate<FileStore, Directory>::removePath(StringViewCR path, bool recursive) noexcept {
 | 
			
		||||
	OX_REQUIRE(fd, fileSystemData());
 | 
			
		||||
	Directory rootDir(m_fs, fd.rootDirInode);
 | 
			
		||||
	OX_REQUIRE(inode, rootDir.find(path));
 | 
			
		||||
	OX_REQUIRE(st, statInode(inode));
 | 
			
		||||
	if (st.fileType == FileType::NormalFile || recursive) {
 | 
			
		||||
		if (auto err = rootDir.remove(path)) {
 | 
			
		||||
			// removal failed, try putting the index back
 | 
			
		||||
			oxLogError(rootDir.write(path, inode));
 | 
			
		||||
			return err;
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		oxTrace("FileSystemTemplate.remove.fail", "Tried to remove directory without recursive setting.");
 | 
			
		||||
		return ox::Error(1);
 | 
			
		||||
	}
 | 
			
		||||
	return ox::Error(0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template<typename FileStore, typename Directory>
 | 
			
		||||
Result<const char*> FileSystemTemplate<FileStore, Directory>::directAccessInode(uint64_t inode) const noexcept {
 | 
			
		||||
	auto data = m_fs.read(inode);
 | 
			
		||||
@@ -384,25 +405,6 @@ Error FileSystemTemplate<FileStore, Directory>::ls(StringViewCR path, F cb) cons
 | 
			
		||||
	return dir.ls(cb);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template<typename FileStore, typename Directory>
 | 
			
		||||
Error FileSystemTemplate<FileStore, Directory>::remove(StringViewCR path, bool recursive) noexcept {
 | 
			
		||||
	OX_REQUIRE(fd, fileSystemData());
 | 
			
		||||
	Directory rootDir(m_fs, fd.rootDirInode);
 | 
			
		||||
	OX_REQUIRE(inode, rootDir.find(path));
 | 
			
		||||
	OX_REQUIRE(st, statInode(inode));
 | 
			
		||||
	if (st.fileType == FileType::NormalFile || recursive) {
 | 
			
		||||
		if (auto err = rootDir.remove(path)) {
 | 
			
		||||
			// removal failed, try putting the index back
 | 
			
		||||
			oxLogError(rootDir.write(path, inode));
 | 
			
		||||
			return err;
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		oxTrace("FileSystemTemplate.remove.fail", "Tried to remove directory without recursive setting.");
 | 
			
		||||
		return ox::Error(1);
 | 
			
		||||
	}
 | 
			
		||||
	return ox::Error(0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template<typename FileStore, typename Directory>
 | 
			
		||||
Error FileSystemTemplate<FileStore, Directory>::resize() noexcept {
 | 
			
		||||
	return m_fs.resize();
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										18
									
								
								deps/ox/src/ox/fs/filesystem/passthroughfs.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								deps/ox/src/ox/fs/filesystem/passthroughfs.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
@@ -75,14 +75,6 @@ Result<Vector<String>> PassThroughFS::ls(StringViewCR dir) const noexcept {
 | 
			
		||||
	return out;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Error PassThroughFS::remove(StringViewCR path, bool recursive) noexcept {
 | 
			
		||||
	if (recursive) {
 | 
			
		||||
		return ox::Error(std::filesystem::remove_all(m_path / stripSlash(path)) != 0);
 | 
			
		||||
	} else {
 | 
			
		||||
		return ox::Error(std::filesystem::remove(m_path / stripSlash(path)) != 0);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Error PassThroughFS::resize(uint64_t, void*) noexcept {
 | 
			
		||||
	// unsupported
 | 
			
		||||
	return ox::Error(1, "resize is not supported by PassThroughFS");
 | 
			
		||||
@@ -167,6 +159,14 @@ Error PassThroughFS::readFileInodeRange(uint64_t, std::size_t, std::size_t, void
 | 
			
		||||
	return ox::Error(1, "read(uint64_t, std::size_t, std::size_t, void*, std::size_t*) is not supported by PassThroughFS");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Error PassThroughFS::removePath(StringViewCR path, bool const recursive) noexcept {
 | 
			
		||||
	if (recursive) {
 | 
			
		||||
		return ox::Error{std::filesystem::remove_all(m_path / stripSlash(path)) == 0};
 | 
			
		||||
	} else {
 | 
			
		||||
		return ox::Error{!std::filesystem::remove(m_path / stripSlash(path))};
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Error PassThroughFS::writeFilePath(StringViewCR path, const void *buffer, uint64_t size, FileType) noexcept {
 | 
			
		||||
	const auto p = (m_path / stripSlash(path));
 | 
			
		||||
	try {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
@@ -45,8 +45,6 @@ class PassThroughFS: public FileSystem {
 | 
			
		||||
		template<typename F>
 | 
			
		||||
		Error ls(StringViewCR dir, F cb) const noexcept;
 | 
			
		||||
 | 
			
		||||
		Error remove(StringViewCR path, bool recursive) noexcept override;
 | 
			
		||||
 | 
			
		||||
		Error resize(uint64_t size, void *buffer) noexcept override;
 | 
			
		||||
 | 
			
		||||
		Result<FileStat> statInode(uint64_t inode) const noexcept override;
 | 
			
		||||
@@ -75,6 +73,8 @@ class PassThroughFS: public FileSystem {
 | 
			
		||||
 | 
			
		||||
		Error readFileInodeRange(uint64_t inode, std::size_t readStart, std::size_t readSize, void *buffer, std::size_t *size) noexcept override;
 | 
			
		||||
 | 
			
		||||
		Error removePath(StringViewCR path, bool recursive) noexcept override;
 | 
			
		||||
 | 
			
		||||
		Error writeFilePath(StringViewCR path, const void *buffer, uint64_t size, FileType fileType) noexcept override;
 | 
			
		||||
 | 
			
		||||
		Error writeFileInode(uint64_t inode, const void *buffer, uint64_t size, FileType fileType) noexcept override;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/fs/filesystem/types.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/fs/filesystem/types.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/fs/fs.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/fs/fs.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/fs/ptrarith/nodebuffer.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/fs/ptrarith/nodebuffer.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/fs/ptrarith/ptr.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/fs/ptrarith/ptr.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/fs/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/fs/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/fs/tool.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/fs/tool.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/logconn/circularbuff.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/logconn/circularbuff.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								deps/ox/src/ox/logconn/def.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								deps/ox/src/ox/logconn/def.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
@@ -14,7 +14,7 @@
 | 
			
		||||
    { \
 | 
			
		||||
		const auto loggerErr = (loggerName).initConn(appName); \
 | 
			
		||||
		if (loggerErr) { \
 | 
			
		||||
			oxErrf("Could not connect to logger: {} ({}:{})\n", toStr(loggerErr), loggerErr.file, loggerErr.line); \
 | 
			
		||||
			oxErrf("Could not connect to logger: {} ({}:{})\n", toStr(loggerErr), loggerErr.src.file_name(), loggerErr.src.line()); \
 | 
			
		||||
		} else { \
 | 
			
		||||
			ox::trace::setLogger(&(loggerName)); \
 | 
			
		||||
		} \
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/logconn/logconn.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/logconn/logconn.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/logconn/logconn.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/logconn/logconn.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/mc/err.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/mc/err.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/mc/intops.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/mc/intops.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/mc/mc.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/mc/mc.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/mc/presenceindicator.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/mc/presenceindicator.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/mc/presenceindicator.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/mc/presenceindicator.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/mc/read.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/mc/read.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/mc/read.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/mc/read.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/mc/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/mc/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/mc/types.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/mc/types.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/mc/write.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/mc/write.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/mc/write.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/mc/write.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/model/def.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/model/def.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/model/descread.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/model/descread.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/model/desctypes.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/model/desctypes.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/model/desctypes.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/model/desctypes.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/model/descwrite.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/model/descwrite.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/model/descwrite.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/model/descwrite.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/model/fieldcounter.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/model/fieldcounter.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/model/metadata.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/model/metadata.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/model/model.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/model/model.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/model/modelhandleradaptor.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/model/modelhandleradaptor.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/model/modelops.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/model/modelops.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/model/modelvalue.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/model/modelvalue.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/model/modelvalue.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/model/modelvalue.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/model/optype.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/model/optype.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/model/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/model/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								deps/ox/src/ox/model/typenamecatcher.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								deps/ox/src/ox/model/typenamecatcher.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
@@ -140,16 +140,16 @@ constexpr Str getModelTypeName() noexcept {
 | 
			
		||||
	return out;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template<typename T>
 | 
			
		||||
template<typename T, typename Str = const char*>
 | 
			
		||||
[[nodiscard]]
 | 
			
		||||
consteval auto requireModelTypeName() noexcept {
 | 
			
		||||
	constexpr auto name = getModelTypeName<T>();
 | 
			
		||||
	constexpr auto name = getModelTypeName<T, Str>();
 | 
			
		||||
	static_assert(ox::StringView{name}.len(), "Type lacks required TypeName");
 | 
			
		||||
	return name;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template<typename T, typename Str = const char*>
 | 
			
		||||
constexpr auto ModelTypeName_v = getModelTypeName<T, Str>();
 | 
			
		||||
constexpr auto ModelTypeName_v = requireModelTypeName<T, Str>();
 | 
			
		||||
 | 
			
		||||
template<typename T, typename Str = const char*>
 | 
			
		||||
constexpr auto ModelTypeVersion_v = requireModelTypeVersion<T>();
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/model/types.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/model/types.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/model/typestore.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/model/typestore.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/model/walk.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/model/walk.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/oc/oc.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/oc/oc.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/oc/read.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/oc/read.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/oc/read.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/oc/read.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/oc/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/oc/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/oc/write.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/oc/write.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/oc/write.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/oc/write.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/preloader/platspecs.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/preloader/platspecs.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/preloader/preloader.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/preloader/preloader.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/preloader/preloader.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/preloader/preloader.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/preloader/sizecatcher.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/preloader/sizecatcher.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								deps/ox/src/ox/std/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								deps/ox/src/ox/std/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							@@ -109,6 +109,7 @@ install(
 | 
			
		||||
		error.hpp
 | 
			
		||||
		fmt.hpp
 | 
			
		||||
		hardware.hpp
 | 
			
		||||
		hash.hpp
 | 
			
		||||
		hashmap.hpp
 | 
			
		||||
		heapmgr.hpp
 | 
			
		||||
		ignore.hpp
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								deps/ox/src/ox/std/algorithm.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								deps/ox/src/ox/std/algorithm.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
@@ -9,13 +9,25 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "def.hpp"
 | 
			
		||||
#include "error.hpp"
 | 
			
		||||
 | 
			
		||||
OX_CLANG_NOWARN_BEGIN(-Wunsafe-buffer-usage)
 | 
			
		||||
 | 
			
		||||
namespace ox {
 | 
			
		||||
 | 
			
		||||
template<typename It, typename T>
 | 
			
		||||
constexpr It find(It begin, It end, const T &value) {
 | 
			
		||||
constexpr ox::Result<size_t> findIdx(It begin, It end, T const&value) {
 | 
			
		||||
	auto it = begin;
 | 
			
		||||
	for (; it != end; ++it) {
 | 
			
		||||
		if (*it == value) {
 | 
			
		||||
			return it.offset();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return ox::Error{1, "item not found"};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template<typename It, typename T>
 | 
			
		||||
constexpr It find(It begin, It end, T const&value) {
 | 
			
		||||
	for (; begin != end; ++begin) {
 | 
			
		||||
		if (*begin == value) {
 | 
			
		||||
			return begin;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										93
									
								
								deps/ox/src/ox/std/anyptr.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										93
									
								
								deps/ox/src/ox/std/anyptr.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
@@ -15,18 +15,22 @@
 | 
			
		||||
 | 
			
		||||
namespace ox {
 | 
			
		||||
 | 
			
		||||
class AnyPtr {
 | 
			
		||||
namespace detail {
 | 
			
		||||
 | 
			
		||||
template<bool unique>
 | 
			
		||||
class AnyPtrT {
 | 
			
		||||
	private:
 | 
			
		||||
		struct WrapBase {
 | 
			
		||||
			virtual constexpr ~WrapBase() = default;
 | 
			
		||||
			virtual constexpr WrapBase *copyTo(ox::Span<char> s) noexcept = 0;
 | 
			
		||||
			virtual constexpr operator bool() const noexcept = 0;
 | 
			
		||||
			virtual void free() noexcept = 0;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		template<typename T>
 | 
			
		||||
		struct Wrap: public WrapBase {
 | 
			
		||||
		struct Wrap final: WrapBase {
 | 
			
		||||
			T *data{};
 | 
			
		||||
			constexpr Wrap(T *pData) noexcept: data(pData) {
 | 
			
		||||
			explicit constexpr Wrap(T *pData) noexcept: data(pData) {
 | 
			
		||||
			}
 | 
			
		||||
			constexpr WrapBase *copyTo(ox::Span<char> s) noexcept override {
 | 
			
		||||
				oxAssert(s.size() >= sizeof(Wrap), "too small buffer");
 | 
			
		||||
@@ -39,39 +43,60 @@ class AnyPtr {
 | 
			
		||||
			constexpr operator bool() const noexcept override {
 | 
			
		||||
				return data != nullptr;
 | 
			
		||||
			}
 | 
			
		||||
			constexpr void free() noexcept override {
 | 
			
		||||
				safeDelete(data);
 | 
			
		||||
				data = {};
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		WrapBase *m_wrapPtr{};
 | 
			
		||||
		ox::Array<char, sizeof(Wrap<void*>)> m_wrapData;
 | 
			
		||||
 | 
			
		||||
	public:
 | 
			
		||||
		constexpr AnyPtr() noexcept = default;
 | 
			
		||||
		constexpr AnyPtrT() noexcept = default;
 | 
			
		||||
 | 
			
		||||
		template<typename T>
 | 
			
		||||
		constexpr AnyPtr(T *ptr) noexcept {
 | 
			
		||||
		constexpr AnyPtrT(T *ptr) noexcept {
 | 
			
		||||
			if (std::is_constant_evaluated()) {
 | 
			
		||||
				m_wrapPtr = new Wrap(ptr);
 | 
			
		||||
				m_wrapPtr = new Wrap<T>(ptr);
 | 
			
		||||
			} else {
 | 
			
		||||
				m_wrapPtr = new(m_wrapData.data()) Wrap(ptr);
 | 
			
		||||
				m_wrapPtr = new(m_wrapData.data()) Wrap<T>(ptr);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		constexpr AnyPtr(AnyPtr const&other) noexcept {
 | 
			
		||||
		constexpr AnyPtrT(AnyPtrT const&other) noexcept {
 | 
			
		||||
			if (other) {
 | 
			
		||||
				m_wrapPtr = other.m_wrapPtr->copyTo(m_wrapData);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		constexpr ~AnyPtr() noexcept {
 | 
			
		||||
		constexpr AnyPtrT(AnyPtrT &&other) noexcept {
 | 
			
		||||
			if (other) {
 | 
			
		||||
				m_wrapPtr = other.m_wrapPtr->copyTo(m_wrapData);
 | 
			
		||||
				if (std::is_constant_evaluated()) {
 | 
			
		||||
					ox::safeDelete(m_wrapPtr);
 | 
			
		||||
				}
 | 
			
		||||
				other.m_wrapPtr = {};
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		constexpr ~AnyPtrT() noexcept {
 | 
			
		||||
			if constexpr(unique) {
 | 
			
		||||
				free();
 | 
			
		||||
			}
 | 
			
		||||
			if (std::is_constant_evaluated()) {
 | 
			
		||||
				ox::safeDelete(m_wrapPtr);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		template<typename T>
 | 
			
		||||
		constexpr AnyPtr &operator=(T *ptr) noexcept {
 | 
			
		||||
			if (std::is_constant_evaluated()) {
 | 
			
		||||
		constexpr AnyPtrT &operator=(T *ptr) noexcept {
 | 
			
		||||
			if constexpr(unique) {
 | 
			
		||||
				free();
 | 
			
		||||
			} else if (std::is_constant_evaluated()) {
 | 
			
		||||
				ox::safeDelete(m_wrapPtr);
 | 
			
		||||
			}
 | 
			
		||||
			if (std::is_constant_evaluated()) {
 | 
			
		||||
				m_wrapPtr = new Wrap(ptr);
 | 
			
		||||
			} else {
 | 
			
		||||
				m_wrapPtr = new(m_wrapData.data()) Wrap(ptr);
 | 
			
		||||
@@ -79,10 +104,14 @@ class AnyPtr {
 | 
			
		||||
			return *this;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		constexpr AnyPtr &operator=(AnyPtr const&ptr) noexcept {
 | 
			
		||||
		constexpr AnyPtrT &operator=(AnyPtrT const&ptr) noexcept {
 | 
			
		||||
			if (this != &ptr) {
 | 
			
		||||
				if (ptr) {
 | 
			
		||||
				if constexpr(unique) {
 | 
			
		||||
					free();
 | 
			
		||||
				} else if (std::is_constant_evaluated()) {
 | 
			
		||||
					ox::safeDelete(m_wrapPtr);
 | 
			
		||||
				}
 | 
			
		||||
				if (ptr) {
 | 
			
		||||
					m_wrapPtr = ptr.m_wrapPtr->copyTo(m_wrapData);
 | 
			
		||||
				} else {
 | 
			
		||||
					m_wrapPtr = nullptr;
 | 
			
		||||
@@ -91,10 +120,40 @@ class AnyPtr {
 | 
			
		||||
			return *this;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		constexpr AnyPtrT &operator=(AnyPtrT &&ptr) noexcept {
 | 
			
		||||
			if (this != &ptr) {
 | 
			
		||||
				if constexpr(unique) {
 | 
			
		||||
					free();
 | 
			
		||||
				} else if (std::is_constant_evaluated()) {
 | 
			
		||||
					ox::safeDelete(m_wrapPtr);
 | 
			
		||||
				}
 | 
			
		||||
				if (ptr) {
 | 
			
		||||
					m_wrapPtr = ptr.m_wrapPtr->copyTo(m_wrapData);
 | 
			
		||||
					if (std::is_constant_evaluated()) {
 | 
			
		||||
						ox::safeDelete(ptr.m_wrapPtr);
 | 
			
		||||
						ptr.m_wrapPtr = nullptr;
 | 
			
		||||
					}
 | 
			
		||||
				} else {
 | 
			
		||||
					m_wrapPtr = nullptr;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			return *this;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		constexpr operator bool() const noexcept {
 | 
			
		||||
			return m_wrapPtr && *m_wrapPtr;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		constexpr void free() noexcept {
 | 
			
		||||
			if (m_wrapPtr) {
 | 
			
		||||
				m_wrapPtr->free();
 | 
			
		||||
			}
 | 
			
		||||
			if (std::is_constant_evaluated()) {
 | 
			
		||||
				ox::safeDelete(m_wrapPtr);
 | 
			
		||||
			}
 | 
			
		||||
			m_wrapPtr = nullptr;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		template<typename T>
 | 
			
		||||
		[[nodiscard]]
 | 
			
		||||
		constexpr T *get() const noexcept {
 | 
			
		||||
@@ -104,6 +163,12 @@ class AnyPtr {
 | 
			
		||||
			return dynamic_cast<Wrap<T>*>(m_wrapPtr)->data;
 | 
			
		||||
#endif
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
using AnyPtr = detail::AnyPtrT<false>;
 | 
			
		||||
using UAnyPtr = detail::AnyPtrT<true>;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/std/array.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/std/array.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										37
									
								
								deps/ox/src/ox/std/assert.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										37
									
								
								deps/ox/src/ox/std/assert.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
@@ -7,6 +7,7 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "fmt.hpp"
 | 
			
		||||
#include "realstd.hpp"
 | 
			
		||||
#include "stacktrace.hpp"
 | 
			
		||||
#include "trace.hpp"
 | 
			
		||||
 | 
			
		||||
@@ -14,14 +15,14 @@
 | 
			
		||||
 | 
			
		||||
namespace ox {
 | 
			
		||||
 | 
			
		||||
void panic(StringViewCR file, int line, StringViewCR panicMsg, const Error &err) noexcept {
 | 
			
		||||
void panic(StringViewCR file, int const line, StringViewCR panicMsg, Error const&err) noexcept {
 | 
			
		||||
	oxErrf("\033[31;1;1mPANIC:\033[0m [{}:{}]: {}\n", file, line, panicMsg);
 | 
			
		||||
	if (err.msg) {
 | 
			
		||||
		oxErrf("\tError Message:\t{}\n", err.msg);
 | 
			
		||||
	}
 | 
			
		||||
	oxErrf("\tError Code:\t{}\n", static_cast<ErrorCode>(err));
 | 
			
		||||
	if (err.file != nullptr) {
 | 
			
		||||
		oxErrf("\tError Location:\t{}:{}\n", err.file, err.line);
 | 
			
		||||
	if (err.src.file_name() != nullptr) {
 | 
			
		||||
		oxErrf("\tError Location:\t{}:{}\n", err.src.file_name(), err.src.line());
 | 
			
		||||
	}
 | 
			
		||||
#ifdef OX_USE_STDLIB
 | 
			
		||||
	printStackTrace(2);
 | 
			
		||||
@@ -32,16 +33,19 @@ void panic(StringViewCR file, int line, StringViewCR panicMsg, const Error &err)
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void panic(const char *file, int line, const char *panicMsg, const Error &err) noexcept {
 | 
			
		||||
void panic(const char *file, int const line, char const*panicMsg, Error const&err) noexcept {
 | 
			
		||||
	panic(StringView{file}, line, StringView{panicMsg}, err);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void assertFailFuncRuntime(StringViewCR file, int line, StringViewCR assertTxt, StringViewCR msg) noexcept {
 | 
			
		||||
void assertFailFuncRuntime(
 | 
			
		||||
	StringViewCR file,
 | 
			
		||||
	int const line,
 | 
			
		||||
	StringViewCR assertTxt,
 | 
			
		||||
	StringViewCR msg) noexcept {
 | 
			
		||||
#ifdef OX_USE_STDLIB
 | 
			
		||||
	auto output = sfmt("\n\033[31;1;1mASSERT FAILURE:\033[0m [{}:{}]: {}\n", file, line, msg);
 | 
			
		||||
	output += genStackTrace(2);
 | 
			
		||||
	oxTracef("assert", "Failed assert: {} ({}) [{}:{}]", msg, assertTxt, file, line);
 | 
			
		||||
	std::abort();
 | 
			
		||||
	auto const st = genStackTrace(2);
 | 
			
		||||
	oxTracef("assert", "Failed assert: {} ({}) [{}:{}]:\n{}", msg, assertTxt, file, line, st);
 | 
			
		||||
	abort();
 | 
			
		||||
#else
 | 
			
		||||
	oxErrf("\n\033[31;1;1mASSERT FAILURE:\033[0m [{}:{}]: {}\n", file, line, msg);
 | 
			
		||||
	oxTracef("assert", "Failed assert: {} ({}) [{}:{}]", msg, assertTxt, file, line);
 | 
			
		||||
@@ -49,20 +53,25 @@ void assertFailFuncRuntime(StringViewCR file, int line, StringViewCR assertTxt,
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void assertFailFuncRuntime(StringViewCR file, int line, [[maybe_unused]] const Error &err, StringViewCR, StringViewCR assertMsg) noexcept {
 | 
			
		||||
void assertFailFuncRuntime(
 | 
			
		||||
	StringViewCR file,
 | 
			
		||||
	int const line,
 | 
			
		||||
	[[maybe_unused]] Error const&err,
 | 
			
		||||
	StringViewCR,
 | 
			
		||||
	StringViewCR assertMsg) noexcept {
 | 
			
		||||
#if defined(OX_USE_STDLIB)
 | 
			
		||||
	auto msg = sfmt("\n\033[31;1;1mASSERT FAILURE:\033[0m [{}:{}]: {}\n", file, line, assertMsg);
 | 
			
		||||
	if (err.msg) {
 | 
			
		||||
		msg += sfmt("\tError Message:\t{}\n", err.msg);
 | 
			
		||||
	}
 | 
			
		||||
	msg += sfmt("\tError Code:\t{}\n", static_cast<ErrorCode>(err));
 | 
			
		||||
	if (err.file != nullptr) {
 | 
			
		||||
		msg += sfmt("\tError Location:\t{}:{}\n", err.file, err.line);
 | 
			
		||||
	if (err.src.file_name() != nullptr) {
 | 
			
		||||
		msg += sfmt("\tError Location:\t{}:{}\n", err.src.file_name(), err.src.line());
 | 
			
		||||
	}
 | 
			
		||||
	msg += genStackTrace(2);
 | 
			
		||||
	oxErr(msg);
 | 
			
		||||
	oxTracef("assert", "Failed assert: {} [{}:{}]", assertMsg, file, line);
 | 
			
		||||
	std::abort();
 | 
			
		||||
	abort();
 | 
			
		||||
#else
 | 
			
		||||
	constexprPanic(file, line, assertMsg);
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										45
									
								
								deps/ox/src/ox/std/assert.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										45
									
								
								deps/ox/src/ox/std/assert.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
@@ -22,9 +22,15 @@
 | 
			
		||||
 | 
			
		||||
namespace ox {
 | 
			
		||||
 | 
			
		||||
void panic(StringViewCR file, int line, StringViewCR panicMsg, const Error &err = ox::Error(0)) noexcept;
 | 
			
		||||
[[noreturn]]
 | 
			
		||||
void panic(StringViewCR file, int line, StringViewCR panicMsg, Error const&err = {}) noexcept;
 | 
			
		||||
 | 
			
		||||
constexpr void constexprPanic(StringViewCR file, int line, StringViewCR panicMsg, const Error &err = ox::Error(0)) noexcept {
 | 
			
		||||
[[noreturn]]
 | 
			
		||||
constexpr void constexprPanic(
 | 
			
		||||
	StringViewCR file,
 | 
			
		||||
	int const line,
 | 
			
		||||
	StringViewCR panicMsg,
 | 
			
		||||
	Error const&err = {}) noexcept {
 | 
			
		||||
	if (!std::is_constant_evaluated()) {
 | 
			
		||||
		panic(file, line, panicMsg, err);
 | 
			
		||||
	} else {
 | 
			
		||||
@@ -32,10 +38,24 @@ constexpr void constexprPanic(StringViewCR file, int line, StringViewCR panicMsg
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void assertFailFuncRuntime(StringViewCR file, int line, StringViewCR assertTxt, StringViewCR msg) noexcept;
 | 
			
		||||
void assertFailFuncRuntime(StringViewCR file, int line, const Error &err, StringViewCR, StringViewCR assertMsg) noexcept;
 | 
			
		||||
void assertFailFuncRuntime(
 | 
			
		||||
	StringViewCR file,
 | 
			
		||||
	int line,
 | 
			
		||||
	StringViewCR assertTxt,
 | 
			
		||||
	StringViewCR msg) noexcept;
 | 
			
		||||
void assertFailFuncRuntime(
 | 
			
		||||
	StringViewCR file,
 | 
			
		||||
	int line,
 | 
			
		||||
	Error const&err,
 | 
			
		||||
	StringViewCR,
 | 
			
		||||
	StringViewCR assertMsg) noexcept;
 | 
			
		||||
 | 
			
		||||
constexpr void assertFunc(StringViewCR file, int line, bool pass, [[maybe_unused]]StringViewCR assertTxt, [[maybe_unused]]StringViewCR msg) noexcept {
 | 
			
		||||
constexpr void assertFunc(
 | 
			
		||||
	StringViewCR file,
 | 
			
		||||
	int const line,
 | 
			
		||||
	bool const pass,
 | 
			
		||||
	[[maybe_unused]]StringViewCR assertTxt,
 | 
			
		||||
	[[maybe_unused]]StringViewCR msg) noexcept {
 | 
			
		||||
	if (!pass) {
 | 
			
		||||
		if (!std::is_constant_evaluated()) {
 | 
			
		||||
			assertFailFuncRuntime(file, line, assertTxt, msg);
 | 
			
		||||
@@ -45,7 +65,12 @@ constexpr void assertFunc(StringViewCR file, int line, bool pass, [[maybe_unused
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
constexpr void assertFunc(StringViewCR file, int line, const Error &err, StringViewCR, StringViewCR assertMsg) noexcept {
 | 
			
		||||
constexpr void assertFunc(
 | 
			
		||||
	StringViewCR file,
 | 
			
		||||
	int const line,
 | 
			
		||||
	Error const&err,
 | 
			
		||||
	StringViewCR,
 | 
			
		||||
	StringViewCR assertMsg) noexcept {
 | 
			
		||||
	if (err) {
 | 
			
		||||
		if (!std::is_constant_evaluated()) {
 | 
			
		||||
			assertFailFuncRuntime(file, line, err, {}, assertMsg);
 | 
			
		||||
@@ -55,7 +80,11 @@ constexpr void assertFunc(StringViewCR file, int line, const Error &err, StringV
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
constexpr void expect(StringViewCR file, int line, const auto &actual, const auto &expected) noexcept {
 | 
			
		||||
constexpr void expect(
 | 
			
		||||
	StringViewCR file,
 | 
			
		||||
	int const line,
 | 
			
		||||
	auto const&actual,
 | 
			
		||||
	auto const&expected) noexcept {
 | 
			
		||||
	if (actual != expected) {
 | 
			
		||||
		 if (!std::is_constant_evaluated()) {
 | 
			
		||||
#if defined(OX_USE_STDLIB)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/std/basestringview.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/std/basestringview.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/std/bit.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/std/bit.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/std/bit.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/std/bit.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/std/bounds.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/std/bounds.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/std/buffer.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/std/buffer.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/std/buffer.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/std/buffer.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/std/buildinfo.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/std/buildinfo.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/std/buildinfo.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/std/buildinfo.hpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/std/byteswap.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/std/byteswap.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2015 - 2024 gary@drinkingtea.net
 | 
			
		||||
 * Copyright 2015 - 2025 gary@drinkingtea.net
 | 
			
		||||
 *
 | 
			
		||||
 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
			
		||||
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user