#include "./helper.h"
#include "megbrain/opr/utility.h"
#include "megbrain/serialization/sereg.h"
using namespace mgb;
namespace {
MGB_DEFINE_OPR_CLASS(OprReaderForTest, opr::intl::ForwardInputToOutput) public:
OprReaderForTest(VarNode* input, const OperatorNodeConfig& config);
static SymbolVar make(SymbolVar input, const OperatorNodeConfig& config = {});
};
cg::OperatorNodeBase* opr_shallow_copy_opr_reader_for_test(
const serialization::OprShallowCopyContext& ctx,
const cg::OperatorNodeBase& opr_, const VarNodeArray& inputs,
const OperatorNodeConfig& config) {
mgb_assert(inputs.size() == 1);
return OprReaderForTest::make(inputs[0], config).node()->owner_opr();
}
MGB_REG_OPR_SHALLOW_COPY(OprReaderForTest, opr_shallow_copy_opr_reader_for_test);
}
MGB_DYN_TYPE_OBJ_FINAL_IMPL(OprReaderForTest);
OprReaderForTest::OprReaderForTest(VarNode* input, const OperatorNodeConfig& config)
: Super(input->owner_graph(), config, "opr_reader", {input}) {
add_input({input});
add_output(None);
}
SymbolVar OprReaderForTest::make(SymbolVar input, const OperatorNodeConfig& config) {
return input.insert_single_output_opr<OprReaderForTest>(input.node(), config);
}
SymbolVar mgb::opr_reader_for_test(SymbolVar x) {
return OprReaderForTest::make(x);
}