Skip to content

Commit a46c76f

Browse files
committed
Extend type_dispatch namespace with TypeMapTwoResultsEntry and DefaultTwoResultsEntry
1 parent 8be7efc commit a46c76f

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
//*****************************************************************************
2+
// Copyright (c) 2025, Intel Corporation
3+
// All rights reserved.
4+
//
5+
// Redistribution and use in source and binary forms, with or without
6+
// maxification, are permitted provided that the following conditions are met:
7+
// - Redistributions of source code must retain the above copyright notice,
8+
// this list of conditions and the following disclaimer.
9+
// - Redistributions in binary form must reproduce the above copyright notice,
10+
// this list of conditions and the following disclaimer in the documentation
11+
// and/or other materials provided with the distribution.
12+
// - Neither the name of the copyright holder nor the names of its contributors
13+
// may be used to endorse or promote products derived from this software
14+
// without specific prior written permission.
15+
//
16+
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17+
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18+
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19+
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20+
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21+
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22+
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23+
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24+
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25+
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
26+
// THE POSSIBILITY OF SUCH DAMAGE.
27+
//*****************************************************************************
28+
29+
#pragma once
30+
31+
#include <type_traits>
32+
33+
#include "utils/type_dispatch.hpp"
34+
35+
namespace dpnp::extensions::py_internal::type_dispatch
36+
{
37+
/**
38+
* Extends dpctl::tensor::type_dispatch::TypeMapResultEntry helper structure
39+
* with support of the two result types.
40+
*/
41+
template <typename Ty,
42+
typename ArgTy,
43+
typename ResTy1 = ArgTy,
44+
typename ResTy2 = ArgTy>
45+
struct TypeMapTwoResultsEntry : std::bool_constant<std::is_same_v<Ty, ArgTy>>
46+
{
47+
using result_type1 = ResTy1;
48+
using result_type2 = ResTy2;
49+
};
50+
51+
/**
52+
* Extends dpctl::tensor::type_dispatch::DefaultResultEntry helper structure
53+
* with support of the two result types.
54+
*/
55+
template <typename Ty = void>
56+
struct DefaultTwoResultsEntry : std::true_type
57+
{
58+
using result_type1 = Ty;
59+
using result_type2 = Ty;
60+
};
61+
} // namespace dpnp::extensions::py_internal::type_dispatch

0 commit comments

Comments
 (0)