// 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/kinematics/SwerveModuleState.h" template <> struct WPILIB_DLLEXPORT wpi::Struct { static constexpr std::string_view kTypeString = "struct:SwerveModuleState"; static constexpr size_t kSize = 8 + wpi::Struct::kSize; static constexpr std::string_view kSchema = "double speed;Rotation2d angle"; static frc::SwerveModuleState Unpack(std::span data); static void Pack(std::span data, const frc::SwerveModuleState& value); static void ForEachNested( std::invocable auto fn); }; static_assert(wpi::HasNestedStruct);