Ariles
Loading...
Searching...
No Matches
std_filesystem_path.h
Go to the documentation of this file.
1/**
2 @file
3 @author Alexander Sherikov
4
5 @copyright 2026 Alexander Sherikov, Licensed under the Apache License, Version 2.0.
6 (see @ref LICENSE or http://www.apache.org/licenses/LICENSE-2.0)
7
8 @brief
9*/
10
11#pragma once
12
13#include <filesystem>
14#include <string>
15#include "../internal/helpers.h"
16
17namespace ariles2
18{
19 namespace read
20 {
21 template <class t_Visitor>
22 void apply_read(t_Visitor &visitor, std::filesystem::path &entry, const typename t_Visitor::Parameters &param)
23 {
25 CPPUT_UNUSED_ARG(param);
26 std::string path_str;
27 visitor.readElement(path_str);
28 entry = std::filesystem::path(path_str);
29 }
30 } // namespace read
31} // namespace ariles2
32
33
34namespace ariles2
35{
36 namespace write
37 {
38 template <class t_Visitor>
40 t_Visitor &writer,
41 const std::filesystem::path &entry,
42 const typename t_Visitor::Parameters &param)
43 {
45 CPPUT_UNUSED_ARG(param);
46 writer.writeElement(entry.string(), param);
47 }
48 } // namespace write
49} // namespace ariles2
50
51
52namespace ariles2
53{
54 namespace compare
55 {
56 template <class t_Visitor>
58 t_Visitor &visitor,
59 const std::filesystem::path &left,
60 const std::filesystem::path &right,
61 const typename t_Visitor::Parameters &param)
62 {
64 apply_compare(visitor, left.string(), right.string(), param);
65 }
66 } // namespace compare
67} // namespace ariles2
68
69
70namespace ariles2
71{
72 namespace defaults
73 {
74 template <class t_Visitor>
76 const t_Visitor & /*visitor*/,
77 std::filesystem::path &entry,
78 const typename t_Visitor::Parameters & /*param*/)
79 {
81 entry.clear();
82 }
83 } // namespace defaults
84} // namespace ariles2
85
86
87namespace ariles2
88{
89 namespace process
90 {
91 template <class t_Visitor>
93 const t_Visitor &visitor,
94 std::filesystem::path &entry,
95 const typename t_Visitor::Parameters &param)
96 {
98 std::string path_str = entry.string();
99 apply_process(visitor, path_str, param);
100 entry = std::filesystem::path(path_str);
101 }
102 } // namespace process
103} // namespace ariles2
104
105
106namespace ariles2
107{
108 namespace copyfrom
109 {
110 template <class t_Visitor>
112 t_Visitor & /*visitor*/,
113 std::filesystem::path &left,
114 const std::filesystem::path &right,
115 const typename t_Visitor::Parameters & /*param*/)
116 {
118 left = right;
119 }
120 } // namespace copyfrom
121
122
123 namespace copyto
124 {
125 template <class t_Visitor>
127 t_Visitor & /*visitor*/,
128 const std::filesystem::path &left,
129 std::filesystem::path &right,
130 const typename t_Visitor::Parameters & /*param*/)
131 {
133 right = left;
134 }
135 } // namespace copyto
136} // namespace ariles2
#define CPPUT_UNUSED_ARG(parameter)
Definition misc.h:19
void apply_compare(t_Visitor &visitor, const t_Left &left, const t_Right &right, const typename t_Visitor::Parameters &param)
Definition basic.h:140
void apply_copyfrom(t_Visitor &visitor, t_Left &left, const t_Right &right, const typename t_Visitor::Parameters &param)
Definition basic.h:307
void apply_copyto(t_Visitor &visitor, const t_Left &left, t_Right &right, const typename t_Visitor::Parameters &param)
Definition basic.h:353
void apply_defaults(const t_Visitor &visitor, t_Entry &entry, const typename t_Visitor::Parameters &param, ARILES2_IS_BASE_ENABLER(ariles2::defaults::Base, t_Entry))
Definition basic.h:232
void apply_process(const t_Visitor &visitor, t_Entry &entry, const typename t_Visitor::Parameters &param)
Definition basic.h:289
void apply_read(t_Visitor &visitor, t_Entry &entry, const typename t_Visitor::Parameters &parameters, ARILES2_IS_BASE_ENABLER(ariles2::read::Base, t_Entry))
Definition basic.h:21
void apply_write(t_Visitor &writer, const t_Entry &entry, const typename t_Visitor::Parameters &parameters, ARILES2_IS_BASE_ENABLER(ariles2::write::Base, t_Entry))
Definition basic.h:82
#define CPPUT_TRACE_FUNCTION
Definition trace.h:126