/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef FOLLY_GEN_FILE_H_ #error This file may only be included from folly/gen/File.h #endif #include <system_error> #include <folly/Exception.h> #include <folly/gen/String.h> namespace folly { namespace gen { namespace detail { class FileReader : public GenImpl<ByteRange, FileReader> { … }; class FileWriter : public Operator<FileWriter> { … }; inline auto byLineImpl(File file, char delim, bool keepDelimiter) { … } } // namespace detail /** * Generator which reads lines from a file. * Note: This produces StringPieces which reference temporary strings which are * only valid during iteration. */ inline auto byLineFull(File file, char delim = '\n') { … } inline auto byLineFull(int fd, char delim = '\n') { … } inline auto byLineFull(const char* f, char delim = '\n') { … } inline auto byLine(File file, char delim = '\n') { … } inline auto byLine(int fd, char delim = '\n') { … } inline auto byLine(const char* f, char delim = '\n') { … } } // namespace gen } // namespace folly