XFSPath
typedef XSmallstr XFSPath;
typedef XSmallstr XFSPath;
#define x_fs_path(out, ...) x_fs_path_(out, __VA_ARGS__, 0)
Build a path from one or more C string components (variadic), writing to out.
X_FILESYSTEM_API bool x_fs_path_(
XFSPath *out,
...
);
XFSPath *outTrue on success, false on failure.
Append a single component to a path.
X_FILESYSTEM_API size_t x_fs_path_append(
XFSPath *p,
const char *comp
);
XFSPath *pconst char *compNew length of the path after appending.
X_FILESYSTEM_API XSlice x_fs_path_as_slice(const XFSPath *path);
Copies a XFSPath into another XFSPath
X_FILESYSTEM_API size_t x_fs_path_copy(
const XFSPath *path,
XFSPath *out
);
size_t size of the copy;
Get a NUL-terminated C string view of an XFSPath.
X_FILESYSTEM_API const char * x_fs_path_cstr(const XFSPath *p);
const XFSPath *pPointer to the internal NUL-terminated string.
Convert a slice into an XFSPath.
X_FILESYSTEM_API size_t x_fs_path_from_slice(
XSlice sv,
XFSPath *out
);
Length written to out.
#define x_fs_path_join(path, ...) x_fs_path_join_(path, __VA_ARGS__, 0)
X_FILESYSTEM_API size_t x_fs_path_join_(
XFSPath *path,
...
);
#define x_fs_path_join_slice(path, ...) x_fs_path_join_slice_(path, __VA_ARGS__, 0)
X_FILESYSTEM_API size_t x_fs_path_join_slice_(
XFSPath *path,
...
);
Normalize a path in-place (e.g., separators, ".", ".." where possible).
X_FILESYSTEM_API XFSPath * x_fs_path_normalize(XFSPath *input);
XFSPath *inputPointer to the normalized path (same as input).
Set a path from a C string.
X_FILESYSTEM_API size_t x_fs_path_set(
XFSPath *p,
const char *cstr
);
XFSPath *pconst char *cstrLength written to p.
Set a path from a stdx slice.
X_FILESYSTEM_API size_t x_fs_path_set_slice(
XFSPath *p,
XSlice slice
);
Length written to p.