You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -250,7 +250,7 @@ These layers establish strict boundaries crucial for maintainability, testabilit
250
250
251
251
1. **`[ Interface Layer ]`**
252
252
* **Location:** `include/oat/yourlib/...` (or similar public include path)
253
-
* **Content:** Public headers defining abstract classes (interfaces), POD-like configuration structs, public enums (like `ErrorCode`), and factory function declarations (e.g., `static std::expected<std::unique_ptr<type_base>, std::error_code> create(...)`).
253
+
* **Content:** Public headers defining abstract classes (interfaces), POD-like configuration structs, public enums (like `log_level`), and factory function declarations (e.g., `static std::expected<std::unique_ptr<type_base>, std::error_code> create(...)`).
254
254
* **Rule:** Interfaces expose **nothing private**. No implementation details, no private helper classes, no internal data structures. They define the "what," not the "how."
255
255
256
256
2. **`[ Implementation Layer ]`**
@@ -282,7 +282,7 @@ These layers establish strict boundaries crucial for maintainability, testabilit
282
282
283
283
virtual void tick(uint64_t now_ns) = 0;
284
284
285
-
[[OAT_NODISCARD("Handle this result! Failure to do so is a bug.")]]
285
+
[[ION_NODISCARD("Handle this result! Failure to do so is a bug.")]]
| **Return** `std::expected<T, std::error_code>` (or `std::expected<void, std::error_code>`). | The value half (`T`) remains unconstrained; the error half is the *portable* C++11 struct whose layout is ABI-stable across DLLs. |
1001
1001
| **Tag** every error code with a *module-local* strongly-typed `enum class`, then convert it to `std::error_code` via `make_error_code`. | Preserves type-safety at call sites while keeping one on-the-wire format. |
1002
-
| **Mark** every fallible API with `OAT_NODISCARD("…descriptive message…")`. | Forces callers to handle the result. |
1002
+
| **Mark** every fallible API with `ION_NODISCARD("…descriptive message…")`. | Forces callers to handle the result. |
1003
1003
1004
1004
`bool`, sentinels, `nullptr`, raw integers, or `std::optional` **shall not** be used for error signalling. Exceptions remain an internal implementation detail; they do **not** cross public ABI boundaries.
0 commit comments