125 template<
typename T>
requires(std::is_trivial_v<T>)
136 inline operator T() const noexcept {
return value; }
150 return T::param_parse_results(*
reinterpret_cast<T*
>(ud), results);
158 inline operator T() const noexcept {
return value; }
Class for global defined parameter instances of custom parameter types.
Definition params.hxx:144
static bool param_parse_results_wrapper(void *ud, ice::Span< ice::String const > results) noexcept
Definition params.hxx:148
bool on_register(ice::Params ¶ms) noexcept override
Definition params.hxx:153
T value
Definition params.hxx:160
Class for global defined parameter instances of simple native types.
Definition params.hxx:127
ParamInstanceBase(ice::String category, ice::String name, ice::String description={}) noexcept
T value
Definition params.hxx:138
bool on_register(ice::Params ¶ms) noexcept override
Definition params.hxx:131
Definition params_types.hxx:24
arr< 2, i32 > arr2i
Definition array.hxx:186
SPDX-License-Identifier: MIT.
Definition array.hxx:12
bool params_define_custom(ice::Params ¶ms, ice::ParamDefinition const &definition, void *userdata, ice::ParamsCustomCallback callback) noexcept
ice::BasicString< char > String
Definition string.hxx:82
@ None
Definition log_severity.hxx:21
@ All
Definition log_severity.hxx:22
std::int8_t i8
Definition types.hxx:19
ParamFlags
Additional flags altering command line parameter behaviors.
Definition params.hxx:14
@ IsRequired
Definition params.hxx:16
@ ValidateDirectory
Definition params.hxx:26
@ TakeAll
Definition params.hxx:23
@ TakeFirst
Definition params.hxx:21
@ None
Definition params.hxx:15
@ TakeLast
Definition params.hxx:22
@ ValidateFile
Definition params.hxx:25
@ ValidatePath
Definition params.hxx:27
@ AllowExtraArgs
Definition params.hxx:18
@ NoExtraArgs
Definition params.hxx:19
auto alloc(ice::usize size) noexcept -> ice::AllocResult
std::uint64_t u64
Definition types.hxx:27
std::int32_t i32
Definition types.hxx:21
constexpr ice::i32 const i32_max
Definition constants.hxx:33
auto params_process(ice::Params ¶ms, int argc, char const *const *argv) noexcept -> ice::i32
ice::BasicPath< char > Path
Definition path_utils.hxx:170
double f64
Definition types.hxx:17
std::uint16_t u16
Definition types.hxx:25
auto create_params(ice::Allocator &alloc, ice::String name, ice::String version, ice::String description) noexcept -> ice::Params
bool params_define(ice::Params ¶ms, ice::ParamDefinition const &definition, T &out_value) noexcept=delete
std::int64_t i64
Definition types.hxx:22
std::uint32_t u32
Definition types.hxx:26
ice::AllocatorBase< ice::build::is_debug||ice::build::is_develop > Allocator
Definition mem_types.hxx:25
ice::UniquePtr< ParamsInternal > const Params
Definition params_types.hxx:17
float f32
Definition types.hxx:16
std::int16_t i16
Definition types.hxx:20
ice::BasicHeapPath< char > HeapPath
Definition path_utils.hxx:171
std::uint8_t u8
Definition types.hxx:24
bool(*)(void *userdata, ice::Span< ice::String const > results) noexcept ParamsCustomCallback
Definition params_types.hxx:18
void params_register_globals(ice::Params ¶ms) noexcept
A simple container storing items in continuous memory.
Definition array.hxx:24
Definition heap_string.hxx:15
Basic information for each command line parameter.
Definition params.hxx:37
ice::String type_name
Special name for the parameter accepted type hint. Defaults to parameter native type,...
Definition params.hxx:50
ice::String description
The description shown in the '–help' output.
Definition params.hxx:44
ice::i32 min
Minimum number of arguments required to be considered valid usage.
Definition params.hxx:54
ice::String name
Name(s) for the parameter to be accessible through.
Definition params.hxx:41
ice::i32 max
Maximum number of arguments required to be considered valid usage.
Definition params.hxx:58
ice::ParamFlags flags
Flags additionally altering parsing behavior of the parameter.
Definition params.hxx:65
ice::arr2i typesize
The number of arguments expected fot this type size.
Definition params.hxx:62
ice::String group
A group this parameter will be shown part in the '–help' output.
Definition params.hxx:47
Base class for global defined parameter instances.
Definition params.hxx:114
ParamInstanceBase(ice::String category, ice::String name, ice::String description={}) noexcept
ice::ParamDefinition const definition
Definition params.hxx:116
virtual bool on_register(ice::Params ¶ms) noexcept=0
ice::ParamInstanceBase *const _next
Definition params.hxx:115
ParamInstanceBase(ice::ParamDefinition const &definition) noexcept
A view into an array of objects laid out in contiguous memory.
Definition span.hxx:17