tor-browser

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

CursivePos.hh (805B)


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