========================== ``mod function_directive`` ========================== .. rust:module:: sphinx_rustdocgen::directives::function_directive :index: 0 :vis: pvt Implementation of the ``rust:function`` directive .. rust:use:: sphinx_rustdocgen::directives::function_directive :used_name: self .. rust:use:: sphinx_rustdocgen :used_name: crate .. rust:use:: syn::FnArg :used_name: FnArg .. rust:use:: syn::ForeignItemFn :used_name: ForeignItemFn .. rust:use:: syn::ImplItemFn :used_name: ImplItemFn .. rust:use:: syn::ItemFn :used_name: ItemFn .. rust:use:: syn::Signature :used_name: Signature .. rust:use:: syn::TraitItemFn :used_name: TraitItemFn .. rust:use:: syn::Visibility :used_name: Visibility .. rust:use:: sphinx_rustdocgen::directives::directive_options::DirectiveOption :used_name: DirectiveOption .. rust:use:: sphinx_rustdocgen::directives::directive_options::DirectiveVisibility :used_name: DirectiveVisibility .. rust:use:: sphinx_rustdocgen::directives::directive_options::IndexEntryType :used_name: IndexEntryType .. rust:use:: sphinx_rustdocgen::directives::Directive :used_name: Directive .. rust:use:: sphinx_rustdocgen::directives::extract_doc_from_attrs :used_name: extract_doc_from_attrs .. rust:use:: sphinx_rustdocgen::formats::MdContent :used_name: MdContent .. rust:use:: sphinx_rustdocgen::formats::MdDirective :used_name: MdDirective .. rust:use:: sphinx_rustdocgen::formats::RstContent :used_name: RstContent .. rust:use:: sphinx_rustdocgen::formats::RstDirective :used_name: RstDirective .. rust:use:: sphinx_rustdocgen::nodes::Node :used_name: Node .. rust:use:: sphinx_rustdocgen::nodes::nodes_for_abi_opt :used_name: nodes_for_abi_opt .. rust:use:: sphinx_rustdocgen::nodes::nodes_for_generics :used_name: nodes_for_generics .. rust:use:: sphinx_rustdocgen::nodes::nodes_for_pat_type :used_name: nodes_for_pat_type .. rust:use:: sphinx_rustdocgen::nodes::nodes_for_return_type :used_name: nodes_for_return_type .. rust:use:: sphinx_rustdocgen::nodes::nodes_for_type :used_name: nodes_for_type .. rust:use:: sphinx_rustdocgen::nodes::nodes_for_where_clause :used_name: nodes_for_where_clause .. rubric:: Macros .. rust:macro:: sphinx_rustdocgen::directives::function_directive::func_from_item :index: 0 :vis: pvt DRY macro to parse the different item types. .. rubric:: Functions .. rust:function:: sphinx_rustdocgen::directives::function_directive::nodes_for_fn_signature :index: 0 :vis: pvt :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"nodes_for_fn_signature"},{"type":"punctuation","value":"("},{"type":"name","value":"signature"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"Signature","target":"Signature"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Vec","target":"Vec"},{"type":"punctuation","value":"<"},{"type":"link","value":"Node","target":"Node"},{"type":"punctuation","value":">"}] Generate docutils node layout for the function from its signature .. rubric:: Structs and Unions .. rust:struct:: sphinx_rustdocgen::directives::function_directive::FunctionDirective :index: 1 :vis: pub :toc: struct FunctionDirective :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"FunctionDirective"}] Struct to hold data for documenting a function. .. rust:variable:: sphinx_rustdocgen::directives::function_directive::FunctionDirective::name :index: 2 :vis: crate :toc: name :layout: [{"type":"name","value":"name"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] The full Rust path of the function. .. rust:variable:: sphinx_rustdocgen::directives::function_directive::FunctionDirective::ident :index: 2 :vis: crate :toc: ident :layout: [{"type":"name","value":"ident"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] The identifier of the function. .. rust:variable:: sphinx_rustdocgen::directives::function_directive::FunctionDirective::options :index: 2 :vis: crate :toc: options :layout: [{"type":"name","value":"options"},{"type":"punctuation","value":": "},{"type":"link","value":"Vec","target":"Vec"},{"type":"punctuation","value":"<"},{"type":"link","value":"DirectiveOption","target":"DirectiveOption"},{"type":"punctuation","value":">"}] The directive options to use. .. rust:variable:: sphinx_rustdocgen::directives::function_directive::FunctionDirective::content :index: 2 :vis: crate :toc: content :layout: [{"type":"name","value":"content"},{"type":"punctuation","value":": "},{"type":"link","value":"Vec","target":"Vec"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":">"}] The docstring for the function. .. rubric:: Implementations .. rust:impl:: sphinx_rustdocgen::directives::function_directive::FunctionDirective :index: -1 :vis: pub :layout: [{"type":"keyword","value":"impl"},{"type":"space"},{"type":"link","value":"FunctionDirective","target":"FunctionDirective"}] :toc: impl FunctionDirective .. rubric:: Variables .. rust:variable:: sphinx_rustdocgen::directives::function_directive::FunctionDirective::DIRECTIVE_NAME :index: -1 :vis: pvt :toc: const DIRECTIVE_NAME :layout: [{"type":"keyword","value":"const"},{"type":"space"},{"type":"name","value":"DIRECTIVE_NAME"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"lifetime","value":"'static"},{"type":"space"},{"type":"link","value":"str","target":"str"}] .. rubric:: Functions .. rust:function:: sphinx_rustdocgen::directives::function_directive::FunctionDirective::change_parent :index: -1 :vis: crate :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"change_parent"},{"type":"punctuation","value":"("},{"type":"punctuation","value":"&"},{"type":"keyword","value":"mut"},{"type":"space"},{"type":"keyword","value":"self"},{"type":"punctuation","value":", "},{"type":"name","value":"new_parent"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":")"}] Change the parent directive of the function. .. rust:function:: sphinx_rustdocgen::directives::function_directive::FunctionDirective::directive_visibility :index: -1 :vis: crate :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"directive_visibility"},{"type":"punctuation","value":"("},{"type":"punctuation","value":"&"},{"type":"keyword","value":"self"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"punctuation","value":"&"},{"type":"link","value":"DirectiveVisibility","target":"DirectiveVisibility"}] Return the visibility of this directive. .. rust:function:: sphinx_rustdocgen::directives::function_directive::FunctionDirective::from_extern :index: -1 :vis: crate :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"from_extern"},{"type":"punctuation","value":"("},{"type":"name","value":"parent_path"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":", "},{"type":"name","value":"item"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"ForeignItemFn","target":"ForeignItemFn"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Directive","target":"Directive"}] Create a new ``Directive::Function`` from a ``syn::ForeignItemFn``. Args: :parent_path: The full path of the trait the function is in. :item: The ``syn::ForeignItemFn`` reference to parse. :inherited_visibility: The visibility of the parent module. Returns: A new ``Directive::Function`` value, which contains the parsed ``FunctionDirective`` in it. .. rust:function:: sphinx_rustdocgen::directives::function_directive::FunctionDirective::from_impl_item :index: -1 :vis: crate :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"from_impl_item"},{"type":"punctuation","value":"("},{"type":"name","value":"parent_path"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":", "},{"type":"name","value":"item"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"ImplItemFn","target":"ImplItemFn"},{"type":"punctuation","value":", "},{"type":"name","value":"inherited_visibility"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"Option","target":"Option"},{"type":"punctuation","value":"<"},{"type":"punctuation","value":"&"},{"type":"link","value":"Visibility","target":"Visibility"},{"type":"punctuation","value":">"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Directive","target":"Directive"}] Create a new ``Directive::Function`` from a ``syn::ImplItemFn``. Args: :parent_path: The full path of the impl block the function is in. :item: The ``syn::ImplItemFn`` reference to parse. :inherited_visibility: The visibility of the impl block. Returns: A new ``Directive::Function`` value, which contains the parsed ``FunctionDirective`` in it. .. rust:function:: sphinx_rustdocgen::directives::function_directive::FunctionDirective::from_item :index: -1 :vis: crate :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"from_item"},{"type":"punctuation","value":"("},{"type":"name","value":"parent_path"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":", "},{"type":"name","value":"item"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"ItemFn","target":"ItemFn"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Directive","target":"Directive"}] Create a new ``Directive::Function`` from a ``syn::ItemFn``. Args: :parent_path: The full path of the module the function is in. :item: The ``syn::ItemFn`` reference to parse. :inherited_visibility: The visibility of the parent module. Returns: A new ``Directive::Function`` value, which contains the parsed ``FunctionDirective`` in it. .. rust:function:: sphinx_rustdocgen::directives::function_directive::FunctionDirective::from_trait_item :index: -1 :vis: crate :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"from_trait_item"},{"type":"punctuation","value":"("},{"type":"name","value":"parent_path"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":", "},{"type":"name","value":"item"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"TraitItemFn","target":"TraitItemFn"},{"type":"punctuation","value":", "},{"type":"name","value":"inherited_visibility"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"Option","target":"Option"},{"type":"punctuation","value":"<"},{"type":"punctuation","value":"&"},{"type":"link","value":"Visibility","target":"Visibility"},{"type":"punctuation","value":">"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Directive","target":"Directive"}] Create a new ``Directive::Function`` from a ``syn::TraitItemFn``. Args: :parent_path: The full path of the trait the function is in. :item: The ``syn::TraitItemFn`` reference to parse. :inherited_visibility: The visibility of the trait. Returns: A new ``Directive::Function`` value, which contains the parsed ``FunctionDirective`` in it. .. rubric:: Traits implemented .. rust:impl:: sphinx_rustdocgen::directives::function_directive::FunctionDirective::RstDirective :index: -1 :vis: pub :layout: [{"type":"keyword","value":"impl"},{"type":"space"},{"type":"link","value":"RstDirective","target":"RstDirective"},{"type":"space"},{"type":"keyword","value":"for"},{"type":"space"},{"type":"link","value":"FunctionDirective","target":"FunctionDirective"}] :toc: impl RstDirective for FunctionDirective .. rubric:: Functions .. rust:function:: sphinx_rustdocgen::directives::function_directive::FunctionDirective::RstDirective::get_rst_text :index: -1 :vis: pvt :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"get_rst_text"},{"type":"punctuation","value":"("},{"type":"keyword","value":"self"},{"type":"punctuation","value":", "},{"type":"name","value":"level"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"},{"type":"punctuation","value":", "},{"type":"name","value":"max_visibility"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"DirectiveVisibility","target":"DirectiveVisibility"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Vec","target":"Vec"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":">"}] .. rust:impl:: sphinx_rustdocgen::directives::function_directive::FunctionDirective::MdDirective :index: -1 :vis: pub :layout: [{"type":"keyword","value":"impl"},{"type":"space"},{"type":"link","value":"MdDirective","target":"MdDirective"},{"type":"space"},{"type":"keyword","value":"for"},{"type":"space"},{"type":"link","value":"FunctionDirective","target":"FunctionDirective"}] :toc: impl MdDirective for FunctionDirective .. rubric:: Functions .. rust:function:: sphinx_rustdocgen::directives::function_directive::FunctionDirective::MdDirective::get_md_text :index: -1 :vis: pvt :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"get_md_text"},{"type":"punctuation","value":"("},{"type":"keyword","value":"self"},{"type":"punctuation","value":", "},{"type":"name","value":"fence_size"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"},{"type":"punctuation","value":", "},{"type":"name","value":"max_visibility"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"DirectiveVisibility","target":"DirectiveVisibility"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Vec","target":"Vec"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":">"}]