// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #include "MapFeatureDescriptor.g.h" #include "iengine.h" namespace WINMLP { struct MapFeatureDescriptor : MapFeatureDescriptorT< MapFeatureDescriptor, ILearningModelFeatureDescriptorNative, _winml::IDescriptorInfoProvider> { MapFeatureDescriptor() = delete; MapFeatureDescriptor( const char* name, const char* description, bool is_required, winml::TensorKind keyKind, winml::ILearningModelFeatureDescriptor valueKind ); // IMapDescriptor winml::TensorKind KeyKind(); winml::ILearningModelFeatureDescriptor ValueDescriptor(); // IFeatureDescriptor hstring Name(); hstring Description(); winml::LearningModelFeatureKind Kind(); bool IsRequired(); STDMETHOD(GetName) (const wchar_t** name, uint32_t* cchName) override; STDMETHOD(GetDescription) (const wchar_t** description, uint32_t* cchDescription) override; STDMETHOD(GetDescriptorInfo) (_winml::IEngineFactory* engine_factory, _winml::IDescriptorInfo** info) override; private: winrt::hstring name_; winrt::hstring description_; bool is_required_; winml::TensorKind key_kind_; winml::ILearningModelFeatureDescriptor value_kind_; }; } // namespace WINMLP