// Copyright (c) FIRST and other WPILib contributors. // Open Source Software; you can modify and/or share it under the terms of // the WPILib BSD license file in the root directory of this project. #pragma once #include #include #include "frc/geometry/Pose2d.h" template <> struct WPILIB_DLLEXPORT wpi::Struct { static constexpr std::string_view GetTypeString() { return "struct:Pose2d"; } static constexpr size_t GetSize() { return wpi::GetStructSize() + wpi::GetStructSize(); } static constexpr std::string_view GetSchema() { return "Translation2d translation;Rotation2d rotation"; } static frc::Pose2d Unpack(std::span data); static void Pack(std::span data, const frc::Pose2d& value); static void ForEachNested( std::invocable auto fn) { wpi::ForEachStructSchema(fn); wpi::ForEachStructSchema(fn); } }; static_assert(wpi::HasNestedStruct);