// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
#nullabledisable
usingJetBrains.Annotations;
usingosu.Framework.Bindables;
namespaceosu.Game.Rulesets.Objects
{
/// <summary>
/// Represents a wrapper containing a lazily-initialised <see cref="Bindable{T}"/>, backed by a temporary field used for <see cref="Value"/> storage until initialisation.
/// </summary>
publicstructHitObjectProperty<T>
{
[CanBeNull]
privateBindable<T>backingBindable;
/// <summary>
/// A temporary field to store the current value to, prior to <see cref="Bindable"/>'s initialisation.
/// </summary>
privateTbackingValue;
/// <summary>
/// The underlying <see cref="Bindable{T}"/>, only initialised on first access.