code: def visit_CFuncDefNode(self, node):
      if not self.current_directives["embedsignature"]:
          return node
      if not node.overridable:  # not cpdef FOO(...):
          return node
  
      signature = self._fmt_signature(
          self.class_name,
          node.declarator.base.name,
          node.declarator.args,
          return_type=node.return_type,
      )
      if signature:
          if node.entry.doc is not None:
              old_doc = node.entry.doc
          elif getattr(node, "py_func", None) is not None:
              old_doc = node.py_func.entry.doc
          else:
              old_doc = None
          new_doc = self._embed_signature(signature, old_doc)
          node.entry.doc = EncodedString(new_doc)
          if hasattr(node, "py_func") and node.py_func is not None:
              node.py_func.entry.doc = EncodedString(new_doc)
      return node
  
imports: from __future__ import absolute_import, print_function
  from .Visitor import CythonTransform
  from .StringEncoding import EncodedString
  from .None import Options
  from .None import PyrexTypes, ExprNodes
  from ..CodeWriter import ExpressionWriter
label_desc: Use image node_id 13 for calling the EmbedSignature obj's underlying member method code with example usage: obj.visit_CFuncDefNode(node) and returns: node, node, node