From 34c4324640641190045df36d71a8c1e42ba5e2e5 Mon Sep 17 00:00:00 2001 From: Max Rottenkolber Date: Fri, 11 Nov 2022 16:36:34 +0100 Subject: [PATCH] lib.yang.path_data: add grammar_for_schema_by_name --- src/lib/yang/path_data.lua | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/lib/yang/path_data.lua b/src/lib/yang/path_data.lua index 2e805af9bd..e3edf64caf 100644 --- a/src/lib/yang/path_data.lua +++ b/src/lib/yang/path_data.lua @@ -87,6 +87,23 @@ end resolver = util.memoize(resolver) +local function grammar_for_schema(schema, path, is_config) + local grammar = data.data_grammar_from_schema(schema, is_config ~= false) + local path = parse_path(path or '/', grammar) + if #path > 0 then + return path[#path].grammar + else + return grammar + end +end + +function grammar_for_schema_by_name(schema_name, path, is_config) + local schema = schema.load_schema_by_name(schema_name) + return grammar_for_schema(schema, path, is_config) +end + +grammar_for_schema_by_name = util.memoize(grammar_for_schema_by_name) + local function printer_for_grammar(grammar, path, format, print_default) local getter, subgrammar = resolver(grammar, path) local printer