Index: tools/json_schema_compiler/memoize.py |
diff --git a/tools/json_schema_compiler/memoize.py b/tools/json_schema_compiler/memoize.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1402a6ecd80990db3192a92be40d71f67f24fabb |
--- /dev/null |
+++ b/tools/json_schema_compiler/memoize.py |
@@ -0,0 +1,13 @@ |
+# Copyright 2013 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+def memoize(fn): |
+ '''Decorates |fn| to memoize. |
+ ''' |
+ memory = {} |
+ def impl(*args): |
+ if args not in memory: |
+ memory[args] = fn(*args) |
+ return memory[args] |
+ return impl |