schema printers FEATURE print YANG schemas in JSON

- similarly to info format, does not print whole schema at once,
  but allows to specify target to print the specific part.
diff --git a/src/printer.h b/src/printer.h
index 6f77358..c5cdb26 100644
--- a/src/printer.h
+++ b/src/printer.h
@@ -67,11 +67,31 @@
 int yin_print_model(struct lyout *out, const struct lys_module *module);
 int tree_print_model(struct lyout *out, const struct lys_module *module, const char *target_schema_path, int line_length, int options);
 int info_print_model(struct lyout *out, const struct lys_module *module, const char *target_schema_path);
+int jsons_print_model(struct lyout *out, const struct lys_module *module, const char *target_schema_path);
 
 int json_print_data(struct lyout *out, const struct lyd_node *root, int options);
 int xml_print_data(struct lyout *out, const struct lyd_node *root, int options);
 int xml_print_node(struct lyout *out, int level, const struct lyd_node *node, int toplevel, int options);
 
+int lys_print_target(struct lyout *out, const struct lys_module *module, const char *target_schema_path,
+                     void (*clb_print_typedef)(struct lyout*, const struct lys_tpdf*, int*),
+                     void (*clb_print_identity)(struct lyout*, const struct lys_ident*, int*),
+                     void (*clb_print_feature)(struct lyout*, const struct lys_feature*, int*),
+                     void (*clb_print_type)(struct lyout*, const struct lys_type*, int*),
+                     void (*clb_print_grouping)(struct lyout*, const struct lys_node*, int*),
+                     void (*clb_print_container)(struct lyout*, const struct lys_node*, int*),
+                     void (*clb_print_choice)(struct lyout*, const struct lys_node*, int*),
+                     void (*clb_print_leaf)(struct lyout*, const struct lys_node*, int*),
+                     void (*clb_print_leaflist)(struct lyout*, const struct lys_node*, int*),
+                     void (*clb_print_list)(struct lyout*, const struct lys_node*, int*),
+                     void (*clb_print_anydata)(struct lyout*, const struct lys_node*, int*),
+                     void (*clb_print_case)(struct lyout*, const struct lys_node*, int*),
+                     void (*clb_print_notif)(struct lyout*, const struct lys_node*, int*),
+                     void (*clb_print_rpc)(struct lyout*, const struct lys_node*, int*),
+                     void (*clb_print_action)(struct lyout*, const struct lys_node*, int*),
+                     void (*clb_print_input)(struct lyout*, const struct lys_node*, int*),
+                     void (*clb_print_output)(struct lyout*, const struct lys_node*, int*));
+
 /**
  * get know if the node is supposed to be printed according to the specified with-default mode
  * return 1 - print, 0 - do not print