Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
y
z
Enumerations
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
z
Classes
Class List
Class Hierarchy
Class Members
All
:
[
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
[
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
y
Enumerations
a
b
c
d
e
f
h
i
k
l
m
n
o
p
r
s
t
u
v
w
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Properties
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
Related Functions
:
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
z
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Enumerations
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
grpc
tools
codegen
core
gen_switch.py
Go to the documentation of this file.
1
#!/usr/bin/env python3
2
3
# Copyright 2021 gRPC authors.
4
#
5
# Licensed under the Apache License, Version 2.0 (the "License");
6
# you may not use this file except in compliance with the License.
7
# You may obtain a copy of the License at
8
#
9
# http://www.apache.org/licenses/LICENSE-2.0
10
#
11
# Unless required by applicable law or agreed to in writing, software
12
# distributed under the License is distributed on an "AS IS" BASIS,
13
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
# See the License for the specific language governing permissions and
15
# limitations under the License.
16
17
import
sys
18
19
20
# utility: print a big comment block into a set of files
21
def
put_banner
(files, banner):
22
for
f
in
files:
23
print(
'/*'
, file=f)
24
for
line
in
banner:
25
print(
' * %s'
% line, file=f)
26
print(
' */'
, file=f)
27
print(
''
, file=f)
28
29
30
with
open
(
'src/core/lib/promise/detail/switch.h'
,
'w'
)
as
H:
31
# copy-paste copyright notice from this file
32
with
open
(sys.argv[0])
as
my_source:
33
copyright = []
34
for
line
in
my_source:
35
if
line[0] !=
'#'
:
36
break
37
for
line
in
my_source:
38
if
line[0] ==
'#'
:
39
copyright.append(line)
40
break
41
for
line
in
my_source:
42
if
line[0] !=
'#'
:
43
break
44
copyright.append(line)
45
put_banner
([H], [line[2:].rstrip()
for
line
in
copyright])
46
47
put_banner
([H], [
"Automatically generated by %s"
% sys.argv[0]])
48
49
print(
"#ifndef GRPC_CORE_LIB_PROMISE_DETAIL_SWITCH_H"
, file=H)
50
print(
"#define GRPC_CORE_LIB_PROMISE_DETAIL_SWITCH_H"
, file=H)
51
print(
''
, file=H)
52
print(
'#include <grpc/impl/codegen/port_platform.h>'
, file=H)
53
print(
''
, file=H)
54
print(
"#include <stdlib.h>"
, file=H)
55
print(
''
, file=H)
56
print(
"namespace grpc_core {"
, file=H)
57
58
for
n
in
range
(1, 33):
59
print(
''
, file=H)
60
print(
"template <typename R, %s> R Switch(char idx, %s) {"
% (
61
", "
.join(
"typename F%d"
% i
for
i
in
range
(0, n)),
62
", "
.join(
"F%d f%d"
% (i, i)
for
i
in
range
(0, n)),
63
),
64
file=H)
65
print(
" switch (idx) {"
, file=H)
66
for
i
in
range
(0, n):
67
print(
" case %d: return f%d();"
% (i, i), file=H)
68
print(
" }"
, file=H)
69
print(
" abort();"
, file=H)
70
print(
"}"
, file=H)
71
72
print(
''
, file=H)
73
print(
"}"
, file=H)
74
print(
''
, file=H)
75
print(
"#endif // GRPC_CORE_LIB_PROMISE_DETAIL_SWITCH_H"
, file=H)
capstone.range
range
Definition:
third_party/bloaty/third_party/capstone/bindings/python/capstone/__init__.py:6
gen_switch.put_banner
def put_banner(files, banner)
Definition:
gen_switch.py:21
open
#define open
Definition:
test-fs.c:46
grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:59:23