U
    -eD                     @   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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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 )    )types)configc                   @   s   e Zd Zdd ZdS )
TestStructc                 C   s   || _ || _d S Nxy)selfr   r    r
   l/var/www/html/Darija-Ai-Train/env/lib/python3.8/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                       s   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                       s   e Zd Z fddZ  ZS )TestStructModelc                    s$   dt fdt fg}t ||| d S )Nr   r   )r   r   r   )r	   ZdmmZ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 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   Zcreate_struct_proxyr   r   r   Z	_getvalue)r(   Zbuildersigargsobjr
   r
   r   lower_test_type_ctor3   s     

r.   N)Znumbar   Z
numba.corer   r   Typer   r   ZENABLE_CUDASIMr   Znumba.core.extendingr   r   r   r   r   Znumba.cuda.cudaimplr   r   registerr"   ZStructModelr#   r)   r&   r.   r
   r
   r
   r   <module>   s&   

