
    J/PhD                        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j        ej                  d             ZdS dS )    )types)configc                       e Zd Zd ZdS )
TestStructc                 "    || _         || _        d S Nxy)selfr
   r   s      k/var/www/html/test/jupyter/venv/lib/python3.11/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                 L    t                                          d           d S )Nr   )name)superr   )r   	__class__s    r   r   zTestStructModelType.__init__   s%    344444r   r   r   r   r   __classcell__r   s   @r   r   r      s8        5 5 5 5 5 5 5 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                 r    dt           fdt           fg}t                                          |||           d S )Nr
   r   )r   r   r   )r   dmmfe_typemembersr   s       r   r   zTestStructModel.__init__%   s7    U|c5\2GGGS'733333r   r   r   s   @r   r+   r+   #   s8        	4 	4 	4 	4 	4 	4 	4 	4 	4r   r+   r
   r   c                     d }|S )Nc                     t          | t          j                  r!t          |t          j                  r	t          S d S d S r   )
isinstancer   Integerr&   r	   s     r   typerztype_test_struct.<locals>.typer.   sC    !U]++ .
1em0L0L .--. . . .r   r   )contextr4   s     r   type_test_structr6   ,   s    	. 	. 	. r   c                      t          j        t                    | |          }|d         |_        |d         |_        |                                S )Nr      )r$   create_struct_proxyr&   r
   r   	_getvalue)r5   buildersigargsobjs        r   lower_test_type_ctorr?   3   sP    
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 5 5 5%* 5 5 5
 -,..   '              *)))))""""""[*%%& & &%& ^'((4 4 4 4 4&, 4 4 )(4
 .S999.S999]:   U:u}em44  54  C' 'r   