
 

// This file is autogenerated. DO NOT EDIT

#pragma once
#include <robotpy_build.h>


#include <../_impl/include/frc/DigitalOutput.h>

#include <wpi/sendable/SendableBuilder.h>



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

namespace rpygen {

using namespace frc;


template <typename CfgBase>
using PyTrampolineCfgBase_frc__DigitalOutput =
    PyTrampolineCfg_frc__DigitalSource<
    PyTrampolineCfg_wpi__Sendable<
CfgBase
>>;

template <typename CfgBase = EmptyTrampolineCfg>
struct PyTrampolineCfg_frc__DigitalOutput :
    PyTrampolineCfgBase_frc__DigitalOutput< CfgBase>
{
    using Base = frc::DigitalOutput;

    using override_base_KGetPortHandleForRouting_v = frc::DigitalOutput;
    using override_base_KGetAnalogTriggerTypeForRouting_v = frc::DigitalOutput;
    using override_base_KIsAnalogTrigger_v = frc::DigitalOutput;
    using override_base_KGetChannel_v = frc::DigitalOutput;
    using override_base_InitSendable_RTSendableBuilder = frc::DigitalOutput;
};


template <typename PyTrampolineBase, typename PyTrampolineCfg>
using PyTrampolineBase_frc__DigitalOutput =
    PyTrampoline_frc__DigitalSource<
    PyTrampoline_wpi__Sendable<
        PyTrampolineBase
        
        , PyTrampolineCfg
    >
        
        , PyTrampolineCfg
    >
;

template <typename PyTrampolineBase, typename PyTrampolineCfg>
struct PyTrampoline_frc__DigitalOutput : PyTrampolineBase_frc__DigitalOutput<PyTrampolineBase, PyTrampolineCfg> {
    using PyTrampolineBase_frc__DigitalOutput<PyTrampolineBase, PyTrampolineCfg>::PyTrampolineBase_frc__DigitalOutput;



#ifndef RPYGEN_DISABLE_KGetPortHandleForRouting_v
    HAL_Handle GetPortHandleForRouting() const override {
        using LookupBase = typename PyTrampolineCfg::Base;
        using CxxCallBase = typename PyTrampolineCfg::override_base_KGetPortHandleForRouting_v;
        PYBIND11_OVERRIDE_IMPL(PYBIND11_TYPE(HAL_Handle), LookupBase,
            "getPortHandleForRouting", );
        return CxxCallBase::GetPortHandleForRouting();
    }
#endif

#ifndef RPYGEN_DISABLE_KGetAnalogTriggerTypeForRouting_v
    AnalogTriggerType GetAnalogTriggerTypeForRouting() const override {
        using LookupBase = typename PyTrampolineCfg::Base;
        using CxxCallBase = typename PyTrampolineCfg::override_base_KGetAnalogTriggerTypeForRouting_v;
        PYBIND11_OVERRIDE_IMPL(PYBIND11_TYPE(AnalogTriggerType), LookupBase,
            "getAnalogTriggerTypeForRouting", );
        return CxxCallBase::GetAnalogTriggerTypeForRouting();
    }
#endif

#ifndef RPYGEN_DISABLE_KIsAnalogTrigger_v
    bool IsAnalogTrigger() const override {
        using LookupBase = typename PyTrampolineCfg::Base;
        using CxxCallBase = typename PyTrampolineCfg::override_base_KIsAnalogTrigger_v;
        PYBIND11_OVERRIDE_IMPL(PYBIND11_TYPE(bool), LookupBase,
            "isAnalogTrigger", );
        return CxxCallBase::IsAnalogTrigger();
    }
#endif

#ifndef RPYGEN_DISABLE_KGetChannel_v
    int GetChannel() const override {
        using LookupBase = typename PyTrampolineCfg::Base;
        using CxxCallBase = typename PyTrampolineCfg::override_base_KGetChannel_v;
        PYBIND11_OVERRIDE_IMPL(PYBIND11_TYPE(int), LookupBase,
            "getChannel", );
        return CxxCallBase::GetChannel();
    }
#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
