1// -*- C++ -*- 2//===----------------------------------------------------------------------===// 3// 4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5// See https://llvm.org/LICENSE.txt for license information. 6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7// 8//===----------------------------------------------------------------------===// 9 10module; 11#include <filesystem> 12 13export module std:filesystem; 14export namespace std::filesystem { 15 // [fs.class.path], paths 16 using std::filesystem::path; 17 18 // [fs.path.nonmember], path non-member functions 19 using std::filesystem::hash_value; 20 using std::filesystem::swap; 21 22 // [fs.class.filesystem.error], filesystem errors 23 using std::filesystem::filesystem_error; 24 25 // [fs.class.directory.entry], directory entries 26 using std::filesystem::directory_entry; 27 28 // [fs.class.directory.iterator], directory iterators 29 using std::filesystem::directory_iterator; 30 31 // [fs.dir.itr.nonmembers], range access for directory iterators 32 using std::filesystem::begin; 33 using std::filesystem::end; 34 35 // [fs.class.rec.dir.itr], recursive directory iterators 36 using std::filesystem::recursive_directory_iterator; 37 38 // [fs.rec.dir.itr.nonmembers], range access for recursive directory iterators 39 using std::filesystem::begin; 40 using std::filesystem::end; 41 42 // [fs.class.file.status], file status 43 using std::filesystem::file_status; 44 using std::filesystem::space_info; 45 46 // [fs.enum], enumerations 47 using std::filesystem::copy_options; 48 using std::filesystem::directory_options; 49 using std::filesystem::file_type; 50 using std::filesystem::perm_options; 51 using std::filesystem::perms; 52 53 using std::filesystem::file_time_type; 54 55 // several of these enums are a bitmask type. 56 // [bitmask.types] specified operators 57 using std::filesystem::operator&; 58 using std::filesystem::operator&=; 59 using std::filesystem::operator^; 60 using std::filesystem::operator^=; 61 using std::filesystem::operator|; 62 using std::filesystem::operator|=; 63 using std::filesystem::operator~; 64 65 // [fs.op.funcs], filesystem operations 66 using std::filesystem::absolute; 67 using std::filesystem::canonical; 68 using std::filesystem::copy; 69 using std::filesystem::copy_file; 70 using std::filesystem::copy_symlink; 71 using std::filesystem::create_directories; 72 using std::filesystem::create_directory; 73 using std::filesystem::create_directory_symlink; 74 using std::filesystem::create_hard_link; 75 using std::filesystem::create_symlink; 76 using std::filesystem::current_path; 77 using std::filesystem::equivalent; 78 using std::filesystem::exists; 79 using std::filesystem::file_size; 80 using std::filesystem::hard_link_count; 81 82 using std::filesystem::is_block_file; 83 using std::filesystem::is_character_file; 84 using std::filesystem::is_directory; 85 using std::filesystem::is_empty; 86 using std::filesystem::is_fifo; 87 using std::filesystem::is_other; 88 using std::filesystem::is_regular_file; 89 using std::filesystem::is_socket; 90 using std::filesystem::is_symlink; 91 92 using std::filesystem::last_write_time; 93 using std::filesystem::permissions; 94 using std::filesystem::proximate; 95 using std::filesystem::read_symlink; 96 using std::filesystem::relative; 97 using std::filesystem::remove; 98 99 using std::filesystem::remove_all; 100 using std::filesystem::rename; 101 using std::filesystem::resize_file; 102 using std::filesystem::space; 103 using std::filesystem::status; 104 using std::filesystem::status_known; 105 using std::filesystem::symlink_status; 106 using std::filesystem::temp_directory_path; 107 using std::filesystem::weakly_canonical; 108 109 // [depr.fs.path.factory] 110 using std::filesystem::u8path; 111 112} // namespace std::filesystem 113 114// [fs.path.hash], hash support 115namespace std { 116 using std::hash; 117} 118 119namespace std::ranges { 120 using std::ranges::enable_borrowed_range; 121 using std::ranges::enable_view; 122} // namespace std::ranges 123