37 #include <pybind11/pybind11.h>
38 #include <rclcpp/rclcpp.hpp>
39 #include <rclcpp/serialization.hpp>
40 #include <rclcpp/duration.hpp>
54 bool load(py::handle src,
bool )
60 if (!py::hasattr(src,
"nanoseconds") || !py::hasattr(src,
"clock_type"))
66 int64_t nanoseconds = src.attr(
"nanoseconds").cast<int64_t>();
67 int clock_type = src.attr(
"clock_type").cast<
int>();
70 value = rclcpp::Time(nanoseconds,
static_cast<rcl_clock_type_t
>(clock_type));
75 static py::handle
cast(
const rclcpp::Time& src, return_value_policy , py::handle )
77 py::module rclpy_time = py::module::import(
"rclpy.time");
78 py::object Time = rclpy_time.attr(
"Time");
80 int64_t nanoseconds = src.nanoseconds();
81 int clock_type =
static_cast<int>(src.get_clock_type());
83 return Time(py::arg(
"nanoseconds") = nanoseconds,
84 py::arg(
"clock_type") = clock_type)
static py::handle cast(const rclcpp::Time &src, return_value_policy, py::handle)
PYBIND11_TYPE_CASTER(rclcpp::Time, _("rclcpp::Time"))
bool load(py::handle src, bool)