code: def _short_string_handler_factory():
      
      def before(c, ctx, is_field_name, is_clob):
          assert not (is_clob and is_field_name)
          is_string = not is_clob and not is_field_name
          if is_string:
              ctx.set_ion_type(IonType.STRING)
          val = ctx.value
          if is_field_name:
              assert not val
              ctx.set_pending_symbol()
              val = ctx.pending_symbol
          return val, is_string
  
      def on_close(ctx):
          ctx.set_self_delimiting(True)
          return ctx.event_transition(IonEvent, IonEventType.SCALAR, ctx.ion_type, ctx.value.as_text())
  
      def after(c, ctx, is_field_name):
          ctx.set_quoted_text(False).set_self_delimiting(True)
          return ctx.immediate_transition(
              ctx.whence if is_field_name else _clob_end_handler(c, ctx),
          )
  
      return _quoted_text_handler_factory(_DOUBLE_QUOTE, lambda c: c == _DOUBLE_QUOTE, before, after, append_first=False,
                                          on_close=on_close)
docs: Generates the short string (double quoted) handler.