# struct glw::ShaderPipeline

    #include <ShaderProgramList.h>

    struct ShaderPipeline {
        // fields

        utils::Property<ShaderPipeline, std::string,&ShaderPipeline::GetVert,&ShaderPipeline::SetVert> vert;
        utils::Property<ShaderPipeline, std::string,&ShaderPipeline::GetTesc,&ShaderPipeline::SetTesc> tesc;
        utils::Property<ShaderPipeline, std::string,&ShaderPipeline::GetTese,&ShaderPipeline::SetTese> tese;
        utils::Property<ShaderPipeline, std::string,&ShaderPipeline::GetGeom,&ShaderPipeline::SetGeom> geom;
        utils::Property<ShaderPipeline, std::string,&ShaderPipeline::GetFrag,&ShaderPipeline::SetFrag> frag;

        // construction

        ShaderPipeline();
        ShaderPipeline(const std::string& base_filename);

        // methods

        std::map<glw::ShaderType, std::string> GetAll() const;
        std::string Get(glw::ShaderType type);
        std::string GetVert() const;
        std::string GetTesc() const;
        std::string GetTese() const;
        std::string GetGeom() const;
        std::string GetFrag() const;
        void SetVert(const std::string& value);
        void SetTesc(const std::string& value);
        void SetTese(const std::string& value);
        void SetGeom(const std::string& value);
        void SetFrag(const std::string& value);
    };