tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

ReverseChainSingleSubst.hh (927B)


      1 #ifndef OT_LAYOUT_GSUB_REVERSECHAINSINGLESUBST_HH
      2 #define OT_LAYOUT_GSUB_REVERSECHAINSINGLESUBST_HH
      3 
      4 #include "Common.hh"
      5 #include "ReverseChainSingleSubstFormat1.hh"
      6 
      7 namespace OT {
      8 namespace Layout {
      9 namespace GSUB_impl {
     10 
     11 struct ReverseChainSingleSubst
     12 {
     13  protected:
     14  union {
     15  struct { HBUINT16 v; }                format;         /* Format identifier */
     16  ReverseChainSingleSubstFormat1        format1;
     17  } u;
     18 
     19  public:
     20  template <typename context_t, typename ...Ts>
     21  typename context_t::return_t dispatch (context_t *c, Ts&&... ds) const
     22  {
     23    if (unlikely (!c->may_dispatch (this, &u.format.v))) return c->no_dispatch_return_value ();
     24    TRACE_DISPATCH (this, u.format.v);
     25    switch (u.format.v) {
     26    case 1: return_trace (c->dispatch (u.format1, std::forward<Ts> (ds)...));
     27    default:return_trace (c->default_return_value ());
     28    }
     29  }
     30 };
     31 
     32 }
     33 }
     34 }
     35 
     36 #endif  /* HB_OT_LAYOUT_GSUB_REVERSECHAINSINGLESUBST_HH */