
 

// This file is autogenerated. DO NOT EDIT

#pragma once
#include <robotpy_build.h>


#include <../src/include/frc2/command/CommandBase.h>

#include <src/helpers.h>



#include <rpygen/frc2__Command.hpp>
#include <rpygen/wpi__Sendable.hpp>

namespace rpygen {

using namespace frc2;


template <typename CfgBase>
using PyTrampolineCfgBase_frc2__CommandBase =
    PyTrampolineCfg_frc2__Command<
    PyTrampolineCfg_wpi__Sendable<
CfgBase
>>;

template <typename CfgBase = EmptyTrampolineCfg>
struct PyTrampolineCfg_frc2__CommandBase :
    PyTrampolineCfgBase_frc2__CommandBase< CfgBase>
{
    using Base = frc2::CommandBase;

    using override_base_KGetRequirements_v = frc2::CommandBase;
    using override_base_KGetName_v = frc2::CommandBase;
    using override_base_InitSendable_RTSendableBuilder = frc2::CommandBase;
};


template <typename PyTrampolineBase, typename PyTrampolineCfg>
using PyTrampolineBase_frc2__CommandBase =
    PyTrampoline_frc2__Command<
    PyTrampoline_wpi__Sendable<
        PyTrampolineBase
        
        , PyTrampolineCfg
    >
        
        , PyTrampolineCfg
    >
;

template <typename PyTrampolineBase, typename PyTrampolineCfg>
struct PyTrampoline_frc2__CommandBase : PyTrampolineBase_frc2__CommandBase<PyTrampolineBase, PyTrampolineCfg> {
    using PyTrampolineBase_frc2__CommandBase<PyTrampolineBase, PyTrampolineCfg>::PyTrampolineBase_frc2__CommandBase;

#ifdef RPYGEN_ENABLE_frc2__CommandBase_PROTECTED_CONSTRUCTORS
    PyTrampoline_frc2__CommandBase() :
PyTrampolineBase_frc2__CommandBase<PyTrampolineBase, PyTrampolineCfg>()
    {}
#endif


#ifndef RPYGEN_DISABLE_KGetRequirements_v
    wpi::SmallSet<std::shared_ptr<Subsystem>, 4 > GetRequirements() const override {
        using LookupBase = typename PyTrampolineCfg::Base;
        using CxxCallBase = typename PyTrampolineCfg::override_base_KGetRequirements_v;
        PYBIND11_OVERRIDE_IMPL(PYBIND11_TYPE(wpi::SmallSet<std::shared_ptr<Subsystem>, 4 >), LookupBase,
            "getRequirements", );
        return CxxCallBase::GetRequirements();
    }
#endif

#ifndef RPYGEN_DISABLE_KGetName_v
    std::string GetName() const override {
        using LookupBase = typename PyTrampolineCfg::Base;
        using CxxCallBase = typename PyTrampolineCfg::override_base_KGetName_v;
        PYBIND11_OVERRIDE_IMPL(PYBIND11_TYPE(std::string), LookupBase,
            "getName", );
        return CxxCallBase::GetName();
    }
#endif

#ifndef RPYGEN_DISABLE_InitSendable_RTSendableBuilder
    void InitSendable(wpi::SendableBuilder& builder) override {
        using LookupBase = typename PyTrampolineCfg::Base;
        using CxxCallBase = typename PyTrampolineCfg::override_base_InitSendable_RTSendableBuilder;
        PYBIND11_OVERRIDE_IMPL(PYBIND11_TYPE(void), LookupBase,
            "initSendable", builder);
        return CxxCallBase::InitSendable(builder);
    }
#endif




};

}; // namespace rpygen
