ynput / ayon-cpp-dev-tools

Apache License 2.0
0 stars 0 forks source link

Create ynput namespace system #1

Closed Lypsolon closed 2 months ago

Lypsolon commented 3 months ago

Is there an existing issue for this?

Please describe the feature you have in mind and explain what the current shortcomings are?

We need a standardised namespace setup with rules and tools around it for better organisational

How would you imagine the implementation of the feature?

Overview

Top-Level Namespace

Standard Sub-Layer Namespaces

Registering a Namespace

Each accepted namespace is documented in definition.md and implemented using macros in namespace_macros.h.

All code under an accepted namespace must use its corresponding namespace macro to define its scope.

Description

Core Libraries

Foundational functions and classes designed for abstract functionality without external dependencies. Ideal for header-only implementations.

Nested Standard Namespaces

Developer Tooling

Classes and functions supporting C/C++ software development are excluded from release builds through macros.

Libraries

Self-contained libraries with abstract interfaces (pure virtual classes), thorough documentation, defined behaviour, internal exception handling, and versioning.

Tool Modules

Tools or collections of tools targeting specific problems offering less abstraction than libraries.

Application Modules

Namespaces for standalone applications within the Ynput ecosystem require startup procedures and do not compile to a static or dynamic library.

Nested Standard Namespaces

Are there any labels you wish to add?

Describe alternatives you've considered:

No response

Additional context:

No response

Lypsolon commented 2 months ago

done