[nostalgia] Add About to Developer Handbook
This commit is contained in:
parent
8f21670439
commit
d37cd50d99
@ -1,5 +1,14 @@
|
|||||||
# Developer Handbook
|
# Developer Handbook
|
||||||
|
|
||||||
|
## About
|
||||||
|
|
||||||
|
The purpose of the Developer Handbook is similar to that of the README. The
|
||||||
|
README should be viewed as a prerequisite to the Developer Handbook. The README
|
||||||
|
should provide information needed to build the project, which might be used by
|
||||||
|
an advanced user or a person trying to build and package the project. The
|
||||||
|
Developer Handbook should focus on information needed by a developer working on
|
||||||
|
the project.
|
||||||
|
|
||||||
## Project Structure
|
## Project Structure
|
||||||
|
|
||||||
### Overview
|
### Overview
|
||||||
@ -92,6 +101,25 @@ resorting to output parameters.
|
|||||||
}
|
}
|
||||||
return OxError(1); // implicitly calls ox::ValErr<T>::ValErr(ox::Error)
|
return OxError(1); // implicitly calls ox::ValErr<T>::ValErr(ox::Error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int caller1() {
|
||||||
|
auto v = foo(argc);
|
||||||
|
if (v.error) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
std::cout << v.value << '\n';
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int caller2() {
|
||||||
|
// it is also possible to capture the value and error in their own variables
|
||||||
|
auto [val, err] = foo(argc);
|
||||||
|
if (err) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
std::cout << val << '\n';
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Lastly, there are two macros available to help in passing ```ox::Error```s
|
Lastly, there are two macros available to help in passing ```ox::Error```s
|
||||||
@ -107,13 +135,13 @@ useful at the boundry between engine libraries and Nostalgia Studio.
|
|||||||
void studioCode() {
|
void studioCode() {
|
||||||
auto [val, err] = foo(1);
|
auto [val, err] = foo(1);
|
||||||
oxThrowError(err);
|
oxThrowError(err);
|
||||||
// do stuff with val
|
doStuff(val);
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]] ox::Error engineCode() {
|
[[nodiscard]] ox::Error engineCode() {
|
||||||
auto [val, err] = foo(1);
|
auto [val, err] = foo(1);
|
||||||
oxReturnError(err);
|
oxReturnError(err);
|
||||||
// do stuff with val
|
doStuff(val);
|
||||||
return OxError(0);
|
return OxError(0);
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@ -124,15 +152,14 @@ Both macros will also take the ```ox::ValErr``` directly:
|
|||||||
void studioCode() {
|
void studioCode() {
|
||||||
auto valerr = foo(1);
|
auto valerr = foo(1);
|
||||||
oxThrowError(valerr);
|
oxThrowError(valerr);
|
||||||
// do stuff with valerr
|
doStuff(valerr.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]] ox::Error engineCode() {
|
[[nodiscard]] ox::Error engineCode() {
|
||||||
auto valerr = foo(1);
|
auto valerr = foo(1);
|
||||||
oxReturnError(valerr);
|
oxReturnError(valerr);
|
||||||
// do stuff with valerr
|
doStuff(valerr.value);
|
||||||
return OxError(0);
|
return OxError(0);
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user