// // Copyright © 2021 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // %{ #include "armnn/BackendId.hpp" #include "armnn/BackendOptions.hpp" %} #pragma SWIG nowarn=SWIGWARN_PARSE_NESTED_CLASS %{ typedef armnn::BackendOptions::BackendOption BackendOption; %} %feature("docstring", " Struct for the users to pass backend specific option. ") BackendOption; %nodefaultctor BackendOption; struct BackendOption { BackendOption(std::string name, bool value); BackendOption(std::string name, int value); BackendOption(std::string name, unsigned int value); BackendOption(std::string name, float value); BackendOption(std::string name, std::string value); std::string GetName(); }; namespace armnn { %feature("docstring", " Struct for backend specific options, see `BackendOption`. Options are assigned to a specific backend by providing a backend id. ") BackendOptions; %nodefaultctor BackendOptions; struct BackendOptions { BackendOptions(BackendId backend); BackendOptions(const BackendOptions& other); %feature("docstring", " Add backend option. Args: option (`BackendOption`): backend option ") AddOption; void AddOption(const BackendOption& option); %feature("docstring", " Get a backend id. Returns: BackendId: assigned backend id. ") GetBackendId; const BackendId& GetBackendId(); %feature("docstring", " Get backend options count. Returns: int: number of options for a backend. ") GetOptionCount; size_t GetOptionCount(); %feature("docstring", " Get backend option by index. Args: idx (int): backend option index Returns: BackendOption: backend option. ") GetOption; const BackendOption& GetOption(size_t idx); %pythoncode %{ def __iter__(self): for count in range(self.GetOptionCount()): yield self[count] %} }; %extend BackendOptions { const BackendOption& __getitem__(size_t i) const { return $self->GetOption(i); } size_t __len__() const { return $self->GetOptionCount(); } } }