| 64 | } // namespace test_class_sh_property |
| 65 | |
| 66 | TEST_SUBMODULE(class_sh_property, m) { |
| 67 | using namespace test_class_sh_property; |
| 68 | |
| 69 | py::class_<ClassicField, std::unique_ptr<ClassicField>>(m, "ClassicField") |
| 70 | .def(py::init<>()) |
| 71 | .def_readwrite("num", &ClassicField::num); |
| 72 | |
| 73 | py::class_<ClassicOuter, std::unique_ptr<ClassicOuter>>(m, "ClassicOuter") |
| 74 | .def(py::init<>()) |
| 75 | .def_readonly("m_mptr_readonly", &ClassicOuter::m_mptr) |
| 76 | .def_readwrite("m_mptr_readwrite", &ClassicOuter::m_mptr) |
| 77 | .def_readwrite("m_cptr_readonly", &ClassicOuter::m_cptr) |
| 78 | .def_readwrite("m_cptr_readwrite", &ClassicOuter::m_cptr); |
| 79 | |
| 80 | py::classh<Field>(m, "Field").def(py::init<>()).def_readwrite("num", &Field::num); |
| 81 | |
| 82 | py::classh<Outer>(m, "Outer") |
| 83 | .def(py::init<>()) |
| 84 | |
| 85 | .def_readonly("m_valu_readonly", &Outer::m_valu) |
| 86 | .def_readwrite("m_valu_readwrite", &Outer::m_valu) |
| 87 | |
| 88 | .def_readonly("m_mptr_readonly", &Outer::m_mptr) |
| 89 | .def_readwrite("m_mptr_readwrite", &Outer::m_mptr) |
| 90 | .def_readonly("m_cptr_readonly", &Outer::m_cptr) |
| 91 | .def_readwrite("m_cptr_readwrite", &Outer::m_cptr) |
| 92 | |
| 93 | // .def_readonly("m_uqmp_readonly", &Outer::m_uqmp) // Custom compilation Error. |
| 94 | .def_readwrite("m_uqmp_readwrite", &Outer::m_uqmp) |
| 95 | // .def_readonly("m_uqcp_readonly", &Outer::m_uqcp) // Custom compilation Error. |
| 96 | .def_readwrite("m_uqcp_readwrite", &Outer::m_uqcp) |
| 97 | |
| 98 | .def_readwrite("m_shmp_readonly", &Outer::m_shmp) |
| 99 | .def_readwrite("m_shmp_readwrite", &Outer::m_shmp) |
| 100 | .def_readwrite("m_shcp_readonly", &Outer::m_shcp) |
| 101 | .def_readwrite("m_shcp_readwrite", &Outer::m_shcp); |
| 102 | |
| 103 | m.def("DisownOuter", DisownOuter); |
| 104 | |
| 105 | py::classh<WithCharArrayMember>(m, "WithCharArrayMember") |
| 106 | .def(py::init<>()) |
| 107 | .def_readonly("char6_member", &WithCharArrayMember::char6_member); |
| 108 | |
| 109 | py::classh<WithConstCharPtrMember>(m, "WithConstCharPtrMember") |
| 110 | .def(py::init<>()) |
| 111 | .def_readonly("const_char_ptr_member", &WithConstCharPtrMember::const_char_ptr_member); |
| 112 | |
| 113 | // See PR #6008 |
| 114 | py::enum_<EnumAB>(m, "EnumAB").value("A", EnumAB::A).value("B", EnumAB::B); |
| 115 | |
| 116 | py::classh<ShWithEnumABMember>(m, "ShWithEnumABMember") |
| 117 | .def(py::init<>()) |
| 118 | .def_readwrite("level", &ShWithEnumABMember::level); |
| 119 | |
| 120 | py::class_<SimpleStruct>(m, "SimpleStruct") |
| 121 | .def(py::init<>()) |
| 122 | .def_readwrite("value", &SimpleStruct::value); |
| 123 | |