LibJuno 0.23.0
LibJuno is a lightweight C99 library designed specifically for embedded systems.
Loading...
Searching...
No Matches
macros.h
Go to the documentation of this file.
1/*
2 MIT License
3
4 Copyright (c) 2025 Robin A. Onsay
5
6 Permission is hereby granted, free of charge, to any person obtaining
7 a copy of this software and associated documentation files
8 (the "Software"), to deal in the Software without restriction,
9 including without limitation the rights to use, copy, modify, merge,
10 publish, distribute, sublicense, and/or sell copies of the Software,
11 and to permit persons to whom the Software is furnished to do so,
12 subject to the following conditions:
13
14 The above copyright notice and this permission notice shall be
15 included in all copies or substantial portions of the Software.
16*/
17#ifndef JUNO_MACROS_H
18#define JUNO_MACROS_H
19
20#include "juno/status.h"
21#include <stdint.h>
22
28#define ASSERT_EXISTS(ptr) \
29if(!(ptr)) \
30{ \
31 return JUNO_STATUS_NULLPTR_ERROR; \
32}
33
41#define ASSERT_EXISTS_MODULE(ptr, ptMod, str) if(!(ptr)) \
42{ \
43 FAIL_MODULE(JUNO_STATUS_NULLPTR_ERROR, ptMod, str); \
44 return JUNO_STATUS_NULLPTR_ERROR; \
45}
46
52#define ASSERT_SUCCESS(tStatus, failOp) if(tStatus != JUNO_STATUS_SUCCESS) \
53{ \
54 failOp; \
55}
56
57
58#endif // JUNO_MACROS_H