shaka-packager/tools/json_schema_compiler/memoize.py

14 lines
347 B
Python
Raw Normal View History

# 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