blob: 148bf4c0a90cb53d0bfd375b5419ee8a19f7e2d7 [file] [log] [blame]
# Copyright 2021 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""
Utility functions for dealing with class members which are sets and lists.
"""
__all__ = ["difference_field", "intersect_field"]
def intersect_field(item_a, item_b, field: str, result) -> None:
"""Set the named field in `result` if the value for that field is the same
in items A and B.
"""
value_a = getattr(item_a, field)
value_b = getattr(item_b, field)
if value_a == value_b:
setattr(result, field, value_a)
def difference_field(item_a, item_b, field: str, result) -> None:
"""Set the named field in `result` to the value from item_a if the value for that field is different
in items A and B.
"""
value_a = getattr(item_a, field)
value_b = getattr(item_b, field)
if value_a != value_b:
setattr(result, field, value_a)