# This file is automatically generated by pyo3_stub_gen
# ruff: noqa: E501, F401, F403, F405
r"""
Cache key type used by the Cacheable trait.

--- 

:py:class:`CacheKey` is a caller-provided ``tag`` plus an
assembler-computed hash of the spec and face-state fields that the
component actually reads.  ``AssemblyOutput`` (the assembler's cached
output) lives at :py:mod:`raygeo.ops.assembly`.
"""

import builtins
import typing
__all__ = [
    "CacheKey",
]

@typing.final
class CacheKey:
    r"""
    An assembler-computed cache key.
    
    Pair of a caller-provided ``tag`` (used for prefix-based pruning)
    and an assembler-computed hash of the spec plus face-state fields
    that the assembler actually reads.
    
    Returned by
    :meth:`Assembler.cache_key() <raygeo.ops.assembly.Assembler.cache_key>`.
    The consumer does not interpret the ``payload_hash`` — it only
    compares it for equality.
    """
    @property
    def tag(self) -> builtins.str:
        r"""
        Caller-provided identifier used for prefix-based pruning.
        """
    @property
    def payload_hash(self) -> builtins.int:
        r"""
        Assembler-computed hash of its read-set fields.
        """
    def __new__(cls, tag: builtins.str, payload_hash: builtins.int) -> CacheKey: ...
    def __repr__(self) -> builtins.str: ...

