o
    ۾iD                     @   s   d dl mZ d dlmZ G dd dZG dd dejZe Zejszd 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edd ZeeG dd dejZeedd eedd eedd Zeeejejdd ZdS dS )    )types)configc                   @   s   e Zd Zdd ZdS )
TestStructc                 C   s   || _ || _d S Nxy)selfr   r    r
   _/home/ubuntu/.local/lib/python3.10/site-packages/numba/cuda/tests/cudapy/extensions_usecases.py__init__   s   
zTestStruct.__init__N)__name__
__module____qualname__r   r
   r
   r
   r   r      s    r   c                          e Zd Z fddZ  ZS )TestStructModelTypec                    s   t  jdd d S )Nr   )name)superr   )r	   	__class__r
   r   r      s   zTestStructModelType.__init__r   r   r   r   __classcell__r
   r
   r   r   r      s    r   )int32)modelsregister_modelmake_attribute_wrappertypeof_impltype_callable)lower)cgutilsc                 C   s   t S r   )test_struct_model_type)valcr
   r
   r   typeof_teststruct   s   r#   c                       r   )TestStructModelc                    s$   dt fdt fg}t ||| d S )Nr   r   )r   r   r   )r	   dmmfe_typemembersr   r
   r   r   %   s   zTestStructModel.__init__r   r
   r
   r   r   r$   #   s    r$   r   r   c                 C   s   dd }|S )Nc                 S   s$   t | tjrt |tjrtS d S d S r   )
isinstancer   Integerr    r   r
   r
   r   typer.   s   ztype_test_struct.<locals>.typerr
   )contextr*   r
   r
   r   type_test_struct,   s   r,   c                 C   s,   t t| |}|d |_|d |_| S )Nr      )r   create_struct_proxyr    r   r   	_getvalue)r+   buildersigargsobjr
   r
   r   lower_test_type_ctor3   s   

r4   N)numbar   
numba.corer   r   Typer   r    ENABLE_CUDASIMr   numba.core.extendingr   r   r   r   r   numba.cuda.cudaimplr   r   registerr#   StructModelr$   r,   r)   r4   r
   r
   r
   r   <module>   s*    

