code: def add_dependency(self, source, target, action):
          '''
          Create a dependency between fields source and target via callable
          action.
  
          >>> permuter = protofuzz.from_description_string()['Address']
          >>> permuter.add_dependency('one', 'two', lambda val: max(0,val-1))
          >>> for obj in permuter.linear():
          ...   print("obj = {}".format(obj))
          ...
          obj = one: 0
          two: 1
  
          obj = one: 256
          two: 257
  
          obj = one: 4096
          two: 4097
  
          obj = one: 1073741823
          two: 1073741824
  
  
          '''
          self._dependencies.append((source, target, action))
docs: Create a dependency between fields source and target via callable
          action.
  
          >>> permuter = protofuzz.from_description_string("""
          ...   message Address {
          ...       required uint32 one = 1;
          ...       required uint32 two = 2;
          ...   }""")['Address']
          >>> permuter.add_dependency('one', 'two', lambda val: max(0,val-1))
          >>> for obj in permuter.linear():
          ...   print("obj = {}".format(obj))
          ...
          obj = one: 0
          two: 1
  
          obj = one: 256
          two: 257
  
          obj = one: 4096
          two: 4097
  
          obj = one: 1073741823
          two: 1073741824