You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
507 B
24 lines
507 B
4 years ago
|
#pragma once
|
||
|
#include <ints.h>
|
||
|
|
||
|
#include <utility>
|
||
|
#include <memory>
|
||
|
|
||
|
/// Superclass of all `MASK` writing task classes
|
||
|
struct Task {
|
||
|
Task();
|
||
|
Task(const Task&) = delete;
|
||
|
Task(Task&&);
|
||
|
virtual ~Task();
|
||
|
|
||
|
private:
|
||
|
struct _impl;
|
||
|
protected:
|
||
|
const std::unique_ptr<_impl> inner;
|
||
|
};
|
||
|
|
||
|
|
||
|
// Create a `Task` subtype for writing the bits in `MASK` to `output_slice`, create an instance of that type. Then return it as a `Task`.
|
||
|
template<u8 MASK>
|
||
|
std::unique_ptr<Task> writing_task_for(u8* output_slice, ... TODO
|