void serialize()

in src/pythonserialization.h [320:366]


void serialize(X& x, py::object& v) {
  pyTypes type;
  x(type);
  switch (type) {
  case pyTypes::bool_:
    v = py::bool_(x.template read<bool>());
    break;
  case pyTypes::none:
    v = py::none();
    break;
  case pyTypes::float_:
    v = py::float_(x.template read<float>());
    break;
  case pyTypes::dict:
    v = x.template read<py::dict>();
    break;
  case pyTypes::str:
    v = x.template read<py::str>();
    break;
  case pyTypes::array:
    v = x.template read<py::array>();
    break;
  case pyTypes::int_:
    v = py::int_(x.template read<int64_t>());
    break;
  case pyTypes::list:
    v = x.template read<py::list>();
    break;
  case pyTypes::tensor:
    v = toPython(x.template read<Tensor>());
    break;
  case pyTypes::tuple:
    v = x.template read<py::tuple>();
    break;
  case pyTypes::args:
    v = x.template read<py::args>();
    break;
  case pyTypes::kwargs:
    v = x.template read<py::kwargs>();
    break;
  case pyTypes::pickled:
    v = unpickle(x);
    break;
  default:
    throw SerializationError("Can't deserialize python type (unknown type " + std::to_string(type) + ")");
  }
}