18 #ifndef FST_SCRIPT_STATEITERATOR_CLASS_H_ 19 #define FST_SCRIPT_STATEITERATOR_CLASS_H_ 37 virtual bool Done()
const = 0;
38 virtual int64_t
Value()
const = 0;
39 virtual void Next() = 0;
40 virtual void Reset() = 0;
50 bool Done() const final {
return siter_.Done(); }
52 int64_t
Value() const final {
return siter_.Value(); }
54 void Next() final { siter_.Next(); }
56 void Reset() final { siter_.Reset(); }
67 std::pair<const FstClass &, StateIteratorClass *>;
78 bool Done()
const {
return impl_->Done(); }
80 int64_t
Value()
const {
return impl_->Value(); }
82 void Next() { impl_->Next(); }
84 void Reset() { impl_->Reset(); }
90 std::unique_ptr<StateIteratorImplBase> impl_;
95 const Fst<Arc> &
fst = *std::get<0>(*args).GetFst<Arc>();
96 std::get<1>(*args)->impl_ =
97 std::make_unique<StateIteratorClassImpl<Arc>>(fst);
103 #endif // FST_SCRIPT_STATEITERATOR_CLASS_H_
StateIteratorClassImpl(const Fst< Arc > &fst)
StateIteratorClass(const Fst< Arc > &fst)
std::pair< const FstClass &, StateIteratorClass * > InitStateIteratorClassArgs
int64_t Value() const final
virtual bool Done() const =0
void InitStateIteratorClass(InitStateIteratorClassArgs *args)
virtual ~StateIteratorImplBase()=default
virtual int64_t Value() const =0