aboutsummaryrefslogtreecommitdiffstats
path: root/frontend/json_frontend.cc
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2019-11-22 17:29:45 +0000
committerDavid Shah <dave@ds0.me>2019-12-27 10:44:30 +0000
commit14b18cb6fa8909cbe34bfb01c6ea43a2ccff9617 (patch)
treeb17d02c6c21fafee87e6e121a29424d13555cba9 /frontend/json_frontend.cc
parent28279b18fe219c182a97efa992f022c8d243ae28 (diff)
downloadnextpnr-14b18cb6fa8909cbe34bfb01c6ea43a2ccff9617.tar.gz
nextpnr-14b18cb6fa8909cbe34bfb01c6ea43a2ccff9617.tar.bz2
nextpnr-14b18cb6fa8909cbe34bfb01c6ea43a2ccff9617.zip
frontend: Support for loading settings and nextpnr state
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'frontend/json_frontend.cc')
-rw-r--r--frontend/json_frontend.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/frontend/json_frontend.cc b/frontend/json_frontend.cc
index 0debd9f2..d2e6248e 100644
--- a/frontend/json_frontend.cc
+++ b/frontend/json_frontend.cc
@@ -134,6 +134,16 @@ struct JsonFrontendImpl
}
}
+ template <typename TFunc> void foreach_setting(const Json &obj, TFunc Func) const
+ {
+ const auto &settings = obj["settings"];
+ if (settings.is_null())
+ return;
+ for (const auto &setting : settings.object_items()) {
+ Func(setting.first, parse_property(setting.second));
+ }
+ }
+
template <typename TFunc> void foreach_port_dir(const CellDataType &cell, TFunc Func) const
{
for (const auto &pdir : cell["port_directions"].object_items())