
    xKgD                        d dl mZ d dlmZ  G d d      Z G d dej
                        Z e       Zej                  sd dl m	Z	 d dl
mZmZmZmZmZ d d	lmZ d d
lmZ  ej&                  e      d        Z ee       G d dej*                               Z eedd        eedd        ee      d        Z eeej0                  ej0                        d        Zyy)    )types)configc                       e Zd Zd Zy)
TestStructc                      || _         || _        y Nxy)selfr
   r   s      o/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/cuda/tests/cudapy/extensions_usecases.py__init__zTestStruct.__init__   s        N)__name__
__module____qualname__r    r   r   r   r      s    r   r   c                        e Zd Z fdZ xZS )TestStructModelTypec                 &    t         |   d       y )Nr   )name)superr   )r   	__class__s    r   r   zTestStructModelType.__init__   s    34r   r   r   r   r   __classcell__r   s   @r   r   r      s    5 5r   r   )int32)modelsregister_modelmake_attribute_wrappertypeof_impltype_callable)lower)cgutilsc                     t         S r   )test_struct_model_type)valcs     r   typeof_teststructr)      s    %%r   c                        e Zd Z fdZ xZS )TestStructModelc                 H    dt         fdt         fg}t        | 	  |||       y )Nr
   r   )r   r   r   )r   dmmfe_typemembersr   s       r   r   zTestStructModel.__init__%   s&    U|c5\2GGS'73r   r   r   s   @r   r+   r+   #   s    	4 	4r   r+   r
   r   c                     d }|S )Nc                 z    t        | t        j                        r!t        |t        j                        rt        S y y r   )
isinstancer   Integerr&   r	   s     r   typerztype_test_struct.<locals>.typer.   s,    !U]]+
1emm0L-- 1M+r   r   )contextr4   s     r   type_test_structr6   ,   s    	. r   c                      t        j                  t              | |      }|d   |_        |d   |_        |j                         S )Nr      )r$   create_struct_proxyr&   r
   r   	_getvalue)r5   buildersigargsobjs        r   lower_test_type_ctorr?   3   sG    
g))"

7 QQ}}r   N)numbar   
numba.corer   r   Typer   r&   ENABLE_CUDASIMr   numba.core.extendingr   r   r    r!   r"   numba.cuda.cudaimplr#   r$   registerr)   StructModelr+   r6   r3   r?   r   r   r   <module>rH      s      5%** 5
 -.    *"[*%& && '(4&,, 4 )4
 .S9.S9:  :u}}emm4 5C r   