Line data Source code
1 : /* File: u8_error_info.inl; Copyright and License: see below */ 2 : 3 : #include "utf8stringbuf/utf8stringbuf.h" 4 : #include "u8/u8_trace.h" 5 : #include "u8/u8_log.h" 6 : #include <assert.h> 7 : 8 52 : static inline void u8_error_info_init_void ( u8_error_info_t *this_ ) 9 : { 10 52 : (*this_).error = U8_ERROR_NONE; 11 52 : (*this_).unit = U8_ERROR_INFO_UNIT_VOID; 12 52 : (*this_).position = -1; 13 52 : (*this_).name[0] = '\0'; 14 52 : } 15 : 16 1 : static inline void u8_error_info_init ( u8_error_info_t *this_, u8_error_t error ) 17 : { 18 1 : (*this_).error = error; 19 1 : (*this_).unit = U8_ERROR_INFO_UNIT_VOID; 20 1 : (*this_).position = -1; 21 1 : (*this_).name[0] = '\0'; 22 1 : } 23 : 24 25 : static inline void u8_error_info_init_line ( u8_error_info_t *this_, u8_error_t error, int32_t line ) 25 : { 26 25 : (*this_).error = error; 27 25 : (*this_).unit = U8_ERROR_INFO_UNIT_LINE; 28 25 : (*this_).position = line; 29 25 : (*this_).name[0] = '\0'; 30 25 : } 31 : 32 1 : static inline void u8_error_info_init_name ( u8_error_info_t *this_, u8_error_t error, const char* name ) 33 : { 34 1 : (*this_).error = error; 35 1 : (*this_).unit = U8_ERROR_INFO_UNIT_NAME; 36 1 : (*this_).position = -1; 37 1 : utf8stringbuf_t my_strbuf = utf8stringbuf_init( U8_ERROR_INFO_MAX_NAME_SIZE, &((*this_).name[0]) ); 38 1 : utf8stringbuf_copy_str( my_strbuf, name ); 39 1 : } 40 : 41 1 : static inline void u8_error_info_init_line_name ( u8_error_info_t *this_, u8_error_t error, int32_t line, const char* name ) 42 : { 43 1 : (*this_).error = error; 44 1 : (*this_).unit = U8_ERROR_INFO_UNIT_LINE_NAME; 45 1 : (*this_).position = line; 46 1 : utf8stringbuf_t my_strbuf = utf8stringbuf_init( U8_ERROR_INFO_MAX_NAME_SIZE, &((*this_).name[0]) ); 47 1 : utf8stringbuf_copy_str( my_strbuf, name ); 48 1 : } 49 : 50 5 : static inline void u8_error_info_destroy ( u8_error_info_t *this_ ) 51 : { 52 5 : } 53 : 54 5 : static inline bool u8_error_info_is_error ( const u8_error_info_t *this_ ) 55 : { 56 5 : return ( (*this_).error != U8_ERROR_NONE ); 57 : } 58 : 59 50 : static inline u8_error_t u8_error_info_get_error ( const u8_error_info_t *this_ ) 60 : { 61 50 : return (*this_).error; 62 : } 63 : 64 24 : static inline u8_error_info_unit_t u8_error_info_get_unit ( const u8_error_info_t *this_ ) 65 : { 66 24 : return (*this_).unit; 67 : } 68 : 69 26 : static inline int32_t u8_error_info_get_line ( const u8_error_info_t *this_ ) 70 : { 71 26 : return (*this_).position; 72 : } 73 : 74 5 : static inline const char* u8_error_info_get_name ( const u8_error_info_t *this_ ) 75 : { 76 5 : return &((*this_).name[0]); 77 : } 78 : 79 : 80 : /* 81 : Copyright 2022-2024 Andreas Warnke 82 : 83 : Licensed under the Apache License, Version 2.0 (the "License"); 84 : you may not use this file except in compliance with the License. 85 : You may obtain a copy of the License at 86 : 87 : http://www.apache.org/licenses/LICENSE-2.0 88 : 89 : Unless required by applicable law or agreed to in writing, software 90 : distributed under the License is distributed on an "AS IS" BASIS, 91 : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 92 : See the License for the specific language governing permissions and 93 : limitations under the License. 94 : */