//! Marker types to express the memory management method of Godot types.
// Note: markers are enums to prevent instantiation and avoid derive (empty/non-inhabitable types)
use crate MemorySpec;
/// Marker that indicates that a type is manually managed.
/// Marker that indicates that a type is reference-counted.
/// Trait to parameterize over the memory management markers [`ManuallyManaged`] and [`RefCounted`].
///
/// This trait is sealed and has no public members.
///
/// It defines how memory is managed for Godot objects in smart pointers, for example [`Ref`][super::Ref].
/// Generally, classes inheriting `Reference` are ref-counted, while the rest (i.e. everything inheriting
/// `Object` which is not a `Reference`) is manually managed.