FST
openfst-1.8.3
OpenFst Library
Main Page
Namespaces
Classes
Files
File List
File Members
src
fst
openfst-1.8.3
src
include
fst
script
arcsort.h
Go to the documentation of this file.
1
// Copyright 2005-2024 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/mutable-fst.h
>
26
#include <
fst/script/fst-class.h
>
27
28
namespace
fst
{
29
namespace
script {
30
31
enum class
ArcSortType
: uint8_t {
ILABEL
,
OLABEL
};
32
33
using
FstArcSortArgs
= std::pair<MutableFstClass *, ArcSortType>;
34
35
template
<
class
Arc>
36
void
ArcSort
(
FstArcSortArgs
*args) {
37
MutableFst<Arc>
*
fst
= std::get<0>(*args)->GetMutableFst<Arc>();
38
switch
(std::get<1>(*args)) {
39
case
ArcSortType::ILABEL
: {
40
const
ILabelCompare<Arc>
icomp;
41
ArcSort
(fst, icomp);
42
return
;
43
}
44
case
ArcSortType::OLABEL
: {
45
const
OLabelCompare<Arc>
ocomp;
46
ArcSort
(fst, ocomp);
47
return
;
48
}
49
}
50
}
51
52
void
ArcSort
(
MutableFstClass
*ofst,
ArcSortType
);
53
54
}
// namespace script
55
}
// namespace fst
56
57
#endif // FST_SCRIPT_ARCSORT_H_
fst::script::ArcSortType::OLABEL
fst-class.h
mutable-fst.h
fst
Definition:
compact16_acceptor-fst.cc:26
fst::MutableFst< Arc >
fst::script::FstArcSortArgs
std::pair< MutableFstClass *, ArcSortType > FstArcSortArgs
Definition:
arcsort.h:33
fst::ILabelCompare
Definition:
arcsort.h:192
arcsort.h
fst::OLabelCompare
Definition:
arcsort.h:209
fst::script::ArcSort
void ArcSort(FstArcSortArgs *args)
Definition:
arcsort.h:36
fst::script::ArcSortType
ArcSortType
Definition:
arcsort.h:31
fst::script::ArcSortType::ILABEL
fst::script::MutableFstClass
Definition:
fst-class.h:450
Generated by
1.8.11