summaryrefslogtreecommitdiffstats
path: root/tools/json_schema_compiler/memoize.py
blob: 1402a6ecd80990db3192a92be40d71f67f24fabb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
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