summaryrefslogtreecommitdiff
path: root/include/dux/cstr.d/cstrlen.hh
blob: b8c8e58e808ed87278c77887c1dbbce04ac9506b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/*
	Copyright 2021 Gabriel Jensen

	This file is part of dux.

	dux is free software: you can redistribute it and/or modify it under the
	terms of the GNU Affero General Public License as published by the Free
	Software Foundation, either version 3 of the License, or (at your
	option) any later version.

	dux is distributed in the hope that it will be useful, but WITHOUT ANY
	WARRANTY; without even the implied warranty of MERCHANTABILITY or
	FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
	License for more details.

	You should have received a copy of the GNU Affero General Public License
	along with dux. If not, see <https://www.gnu.org/licenses/>.
*/

constexpr auto ::dux::cstrlen(char const * const dux_restr _str) noexcept -> ::dux::usz {
	auto sz = 0x0uz;
	for (::dux::usz n = 0x0uz;;n += 0x1uz) {
		if (_str[n] == '\u0000') [[unlikely]] {
			break;
		}
		sz += 0x1uz;
	}
	return sz;
}