mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-10 04:50:31 -04:00
fix(scanner): use rvalue refs to ensure type definition isn't required
This commit is contained in:
parent
86a751ebc3
commit
48152b9412
@ -51,11 +51,11 @@ class scanner {
|
|||||||
entry_factory& ef, os_access const& os,
|
entry_factory& ef, os_access const& os,
|
||||||
const scanner_options& options);
|
const scanner_options& options);
|
||||||
|
|
||||||
void add_filter(std::unique_ptr<entry_filter> filter) {
|
void add_filter(std::unique_ptr<entry_filter>&& filter) {
|
||||||
impl_->add_filter(std::move(filter));
|
impl_->add_filter(std::move(filter));
|
||||||
}
|
}
|
||||||
|
|
||||||
void add_transformer(std::unique_ptr<entry_transformer> transformer) {
|
void add_transformer(std::unique_ptr<entry_transformer>&& transformer) {
|
||||||
impl_->add_transformer(std::move(transformer));
|
impl_->add_transformer(std::move(transformer));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -71,10 +71,10 @@ class scanner {
|
|||||||
public:
|
public:
|
||||||
virtual ~impl() = default;
|
virtual ~impl() = default;
|
||||||
|
|
||||||
virtual void add_filter(std::unique_ptr<entry_filter> filter) = 0;
|
virtual void add_filter(std::unique_ptr<entry_filter>&& filter) = 0;
|
||||||
|
|
||||||
virtual void
|
virtual void
|
||||||
add_transformer(std::unique_ptr<entry_transformer> transformer) = 0;
|
add_transformer(std::unique_ptr<entry_transformer>&& transformer) = 0;
|
||||||
|
|
||||||
virtual void
|
virtual void
|
||||||
scan(filesystem_writer& fsw, const std::filesystem::path& path,
|
scan(filesystem_writer& fsw, const std::filesystem::path& path,
|
||||||
|
@ -298,9 +298,10 @@ class scanner_ final : public scanner::impl {
|
|||||||
entry_factory& ef, os_access const& os,
|
entry_factory& ef, os_access const& os,
|
||||||
const scanner_options& options);
|
const scanner_options& options);
|
||||||
|
|
||||||
void add_filter(std::unique_ptr<entry_filter> filter) override;
|
void add_filter(std::unique_ptr<entry_filter>&& filter) override;
|
||||||
|
|
||||||
void add_transformer(std::unique_ptr<entry_transformer> transformer) override;
|
void
|
||||||
|
add_transformer(std::unique_ptr<entry_transformer>&& transformer) override;
|
||||||
|
|
||||||
void scan(filesystem_writer& fs_writer, std::filesystem::path const& path,
|
void scan(filesystem_writer& fs_writer, std::filesystem::path const& path,
|
||||||
writer_progress& wprog,
|
writer_progress& wprog,
|
||||||
@ -335,13 +336,14 @@ class scanner_ final : public scanner::impl {
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <typename LoggerPolicy>
|
template <typename LoggerPolicy>
|
||||||
void scanner_<LoggerPolicy>::add_filter(std::unique_ptr<entry_filter> filter) {
|
void scanner_<LoggerPolicy>::add_filter(
|
||||||
|
std::unique_ptr<entry_filter>&& filter) {
|
||||||
filters_.push_back(std::move(filter));
|
filters_.push_back(std::move(filter));
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename LoggerPolicy>
|
template <typename LoggerPolicy>
|
||||||
void scanner_<LoggerPolicy>::add_transformer(
|
void scanner_<LoggerPolicy>::add_transformer(
|
||||||
std::unique_ptr<entry_transformer> transformer) {
|
std::unique_ptr<entry_transformer>&& transformer) {
|
||||||
transformers_.push_back(std::move(transformer));
|
transformers_.push_back(std::move(transformer));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user