FST
openfst-1.8.2.post1
OpenFst Library
Main Page
Namespaces
Classes
Files
File List
File Members
src
fst
openfst-1.8.2.post1
src
include
fst
script
arcsort.h
Go to the documentation of this file.
1
// Copyright 2005-2020 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
// http://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
// See www.openfst.org for extensive documentation on this weighted
16
// finite-state transducer library.
17
18
#ifndef FST_SCRIPT_ARCSORT_H_
19
#define FST_SCRIPT_ARCSORT_H_
20
21
#include <cstdint>
22
#include <utility>
23
24
#include <
fst/arcsort.h
>
25
#include <
fst/script/fst-class.h
>
26
27
namespace
fst
{
28
namespace
script {
29
30
enum class
ArcSortType
: uint8_t {
ILABEL
,
OLABEL
};
31
32
using
FstArcSortArgs
= std::pair<MutableFstClass *, ArcSortType>;
33
34
template
<
class
Arc>
35
void
ArcSort
(
FstArcSortArgs
*args) {
36
MutableFst<Arc>
*
fst
= std::get<0>(*args)->GetMutableFst<Arc>();
37
switch
(std::get<1>(*args)) {
38
case
ArcSortType::ILABEL
: {
39
const
ILabelCompare<Arc>
icomp;
40
ArcSort
(fst, icomp);
41
return
;
42
}
43
case
ArcSortType::OLABEL
: {
44
const
OLabelCompare<Arc>
ocomp;
45
ArcSort
(fst, ocomp);
46
return
;
47
}
48
}
49
}
50
51
void
ArcSort
(
MutableFstClass
*ofst,
ArcSortType
);
52
53
}
// namespace script
54
}
// namespace fst
55
56
#endif // FST_SCRIPT_ARCSORT_H_
fst::script::ArcSortType::OLABEL
fst-class.h
fst
Definition:
compact16_acceptor-fst.cc:23
fst::MutableFst< Arc >
fst::script::FstArcSortArgs
std::pair< MutableFstClass *, ArcSortType > FstArcSortArgs
Definition:
arcsort.h:32
fst::ILabelCompare
Definition:
arcsort.h:185
arcsort.h
fst::OLabelCompare
Definition:
arcsort.h:202
fst::script::ArcSort
void ArcSort(FstArcSortArgs *args)
Definition:
arcsort.h:35
fst::script::ArcSortType
ArcSortType
Definition:
arcsort.h:30
fst::script::ArcSortType::ILABEL
fst::script::MutableFstClass
Definition:
fst-class.h:443
Generated by
1.8.11