KiCad PCB EDA Suite
Loading...
Searching...
No Matches
policy.h
Go to the documentation of this file.
1/*
2* This program source code file is part of KiCad, a free EDA CAD application.
3*
4* Copyright (C) 2022 Mark Roszko <[email protected]>
5* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
6*
7* This program is free software: you can redistribute it and/or modify it
8* under the terms of the GNU General Public License as published by the
9* Free Software Foundation, either version 3 of the License, or (at your
10* option) any later version.
11*
12* This program is distributed in the hope that it will be useful, but
13* WITHOUT ANY WARRANTY; without even the implied warranty of
14* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15* General Public License for more details.
16*
17* You should have received a copy of the GNU General Public License along
18* with this program. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21
22#ifndef KIPLATFORM_POLICY_H_
23#define KIPLATFORM_POLICY_H_
24
25#include <cstdint>
26#include <optional>
27
28class wxString;
29
30namespace KIPLATFORM
31{
32 namespace POLICY
33 {
40
41 PBOOL GetPolicyBool( const wxString& aKey );
42 std::optional<std::uint32_t> GetPolicyEnumUInt( const wxString& aKey );
43
44 template <typename T>
45 std::optional<T> GetPolicyEnum( const wxString& aKey )
46 {
47 std::optional<std::uint32_t> val = GetPolicyEnumUInt( aKey );
48
49 if( val )
50 return static_cast<T>( *val );
51
52 return std::nullopt;
53 }
54 }
55}
56
57#endif
PBOOL GetPolicyBool(const wxString &aKey)
std::optional< T > GetPolicyEnum(const wxString &aKey)
Definition policy.h:45
std::optional< std::uint32_t > GetPolicyEnumUInt(const wxString &aKey)