Shaka Player Embedded
shaka
src
mapping
exception_or.h
Go to the documentation of this file.
1
// Copyright 2018 Google LLC
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// https://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#ifndef SHAKA_EMBEDDED_MAPPING_EXCEPTION_OR_H_
16
#define SHAKA_EMBEDDED_MAPPING_EXCEPTION_OR_H_
17
18
#include <utility>
19
20
#include "
shaka/variant.h
"
21
#include "
src/js/js_error.h
"
22
23
namespace
shaka
{
24
25
#define RETURN_IF_ERROR(code) \
26
do { \
27
ExceptionOr<void> except = (code); \
28
if (holds_alternative<JsError>(except)) \
29
return get<JsError>(std::move(except)); \
30
} while (false)
31
35
template
<
typename
T>
36
struct
ExceptionOr
final :
variant
<js::JsError, T> {
37
using
variant<js::JsError, T>::variant
;
38
};
39
40
template
<>
41
struct
ExceptionOr
<void> final :
variant
<js::JsError, monostate> {
42
using
variant<js::JsError, monostate>::variant
;
43
ExceptionOr
() :
variant
(
monostate
()) {}
44
};
45
46
}
// namespace shaka
47
48
#endif // SHAKA_EMBEDDED_MAPPING_EXCEPTION_OR_H_
shaka::ExceptionOr
Definition:
exception_or.h:36
shaka::monostate
Definition:
variant.h:290
shaka
Definition:
async_results.h:25
variant.h
js_error.h
shaka::variant
Definition:
variant.h:36
shaka::ExceptionOr< void >::ExceptionOr
ExceptionOr()
Definition:
exception_or.h:43
Generated by
1.8.13