summaryrefslogtreecommitdiff
path: root/cli/doc/node.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2020-08-18 00:15:04 +0200
committerGitHub <noreply@github.com>2020-08-18 00:15:04 +0200
commit9f1dcc1a32cab4d18fbb07f87ea6a64ba2711226 (patch)
tree0df220eda9bd546ad105d89e462f6c44fe5fe059 /cli/doc/node.rs
parent93e2bfe22e5cc782e7d502616dad1fd70d26ae37 (diff)
refactor(doc): add helper functions for DocNode (#7083)
Diffstat (limited to 'cli/doc/node.rs')
-rw-r--r--cli/doc/node.rs178
1 files changed, 178 insertions, 0 deletions
diff --git a/cli/doc/node.rs b/cli/doc/node.rs
index 980a5d8b9..226fdc8fa 100644
--- a/cli/doc/node.rs
+++ b/cli/doc/node.rs
@@ -107,3 +107,181 @@ pub struct DocNode {
#[serde(skip_serializing_if = "Option::is_none")]
pub import_def: Option<ImportDef>,
}
+
+impl DocNode {
+ pub fn function(
+ name: String,
+ location: Location,
+ js_doc: Option<String>,
+ fn_def: super::function::FunctionDef,
+ ) -> Self {
+ Self {
+ kind: DocNodeKind::Function,
+ name,
+ location,
+ js_doc,
+ function_def: Some(fn_def),
+ variable_def: None,
+ enum_def: None,
+ class_def: None,
+ type_alias_def: None,
+ namespace_def: None,
+ interface_def: None,
+ import_def: None,
+ }
+ }
+
+ pub fn variable(
+ name: String,
+ location: Location,
+ js_doc: Option<String>,
+ var_def: super::variable::VariableDef,
+ ) -> Self {
+ Self {
+ kind: DocNodeKind::Variable,
+ name,
+ location,
+ js_doc,
+ function_def: None,
+ variable_def: Some(var_def),
+ enum_def: None,
+ class_def: None,
+ type_alias_def: None,
+ namespace_def: None,
+ interface_def: None,
+ import_def: None,
+ }
+ }
+
+ pub fn r#enum(
+ name: String,
+ location: Location,
+ js_doc: Option<String>,
+ enum_def: super::r#enum::EnumDef,
+ ) -> Self {
+ Self {
+ kind: DocNodeKind::Enum,
+ name,
+ location,
+ js_doc,
+ function_def: None,
+ variable_def: None,
+ enum_def: Some(enum_def),
+ class_def: None,
+ type_alias_def: None,
+ namespace_def: None,
+ interface_def: None,
+ import_def: None,
+ }
+ }
+
+ pub fn class(
+ name: String,
+ location: Location,
+ js_doc: Option<String>,
+ class_def: super::class::ClassDef,
+ ) -> Self {
+ Self {
+ kind: DocNodeKind::Class,
+ name,
+ location,
+ js_doc,
+ function_def: None,
+ variable_def: None,
+ enum_def: None,
+ class_def: Some(class_def),
+ type_alias_def: None,
+ namespace_def: None,
+ interface_def: None,
+ import_def: None,
+ }
+ }
+
+ pub fn type_alias(
+ name: String,
+ location: Location,
+ js_doc: Option<String>,
+ type_alias_def: super::type_alias::TypeAliasDef,
+ ) -> Self {
+ Self {
+ kind: DocNodeKind::TypeAlias,
+ name,
+ location,
+ js_doc,
+ function_def: None,
+ variable_def: None,
+ enum_def: None,
+ class_def: None,
+ type_alias_def: Some(type_alias_def),
+ namespace_def: None,
+ interface_def: None,
+ import_def: None,
+ }
+ }
+
+ pub fn namespace(
+ name: String,
+ location: Location,
+ js_doc: Option<String>,
+ namespace_def: super::namespace::NamespaceDef,
+ ) -> Self {
+ Self {
+ kind: DocNodeKind::Namespace,
+ name,
+ location,
+ js_doc,
+ function_def: None,
+ variable_def: None,
+ enum_def: None,
+ class_def: None,
+ type_alias_def: None,
+ namespace_def: Some(namespace_def),
+ interface_def: None,
+ import_def: None,
+ }
+ }
+
+ pub fn interface(
+ name: String,
+ location: Location,
+ js_doc: Option<String>,
+ interface_def: super::interface::InterfaceDef,
+ ) -> Self {
+ Self {
+ kind: DocNodeKind::Interface,
+ name,
+ location,
+ js_doc,
+ function_def: None,
+ variable_def: None,
+ enum_def: None,
+ class_def: None,
+ type_alias_def: None,
+ namespace_def: None,
+ interface_def: Some(interface_def),
+ import_def: None,
+ }
+ }
+
+ pub fn import(
+ name: String,
+ location: Location,
+ js_doc: Option<String>,
+ import_def: ImportDef,
+ ) -> Self {
+ Self {
+ kind: DocNodeKind::Import,
+ name,
+ location,
+ js_doc,
+ function_def: None,
+ variable_def: None,
+ enum_def: None,
+ class_def: None,
+ type_alias_def: None,
+ namespace_def: None,
+ interface_def: None,
+ import_def: Some(import_def),
+ }
+ }
+}