o
    g7                     @   s^   d Z ddlmZ ejdurejjZdS ddlmZ ddlmZ G dd dZG dd	 d	ZdS )
a  Contains Unknown Fields APIs.

Simple usage example:
  unknown_field_set = UnknownFieldSet(message)
  for unknown_field in unknown_field_set:
    wire_type = unknown_field.wire_type
    field_number = unknown_field.field_number
    data = unknown_field.data
    )api_implementationN)decoder)wire_formatc                   @   sD   e Zd ZdZg dZdd Zedd Zedd Zed	d
 Z	dS )UnknownFieldzA parsed unknown field._field_number
_wire_type_datac                 C   s   || _ || _|| _d S Nr   )selffield_number	wire_typedata r   U/var/www/visachat/venv/lib/python3.10/site-packages/google/protobuf/unknown_fields.py__init__!   s   zUnknownField.__init__c                 C      | j S r
   )r   r   r   r   r   r   '      zUnknownField.field_numberc                 C   r   r
   )r   r   r   r   r   r   +   r   zUnknownField.wire_typec                 C   r   r
   )r	   r   r   r   r   r   /   r   zUnknownField.dataN)
__name__
__module____qualname____doc__	__slots__r   propertyr   r   r   r   r   r   r   r      s    

r   c                   @   s6   e Zd ZdZdgZdd Zdd Zdd Zd	d
 ZdS )UnknownFieldSetzUnknownField container._valuesc                    s    fdd}g  _ |j}|j}|jr3| jr3t }|D ]\}}|t|\}}	||t	j
|	 qd S |D ],\}
}t|
d\}}t	|\}}|dkrPtdtt|d|\}	}||||	 q5d S )Nc                    s   t | ||} j| d S r
   )r   r   append)r   r   r   unknown_fieldr   r   r   InternalAdd;   s   z-UnknownFieldSet.__init__.<locals>.InternalAddr   zField number 0 is illegal.)r   
DESCRIPTOR_unknown_fieldshas_options
GetOptionsmessage_set_wire_formatr   UnknownMessageSetItemDecoder
memoryviewr   WIRETYPE_LENGTH_DELIMITED_DecodeVarint	UnpackTagRuntimeError_DecodeUnknownField)r   msgr   msg_desunknown_fieldslocal_decoder_bufferr   r   	tag_bytestagr   r   r   r   r   9   s,   
zUnknownFieldSet.__init__c                 C   s>   t | j}|dk r||7 }|dk s||krtdj| j| S )Nr   zindex %d out of range)lenr   
IndexErrorindex)r   r6   sizer   r   r   __getitem__T   s   


zUnknownFieldSet.__getitem__c                 C   
   t | jS r
   )r4   r   r   r   r   r   __len__]      
zUnknownFieldSet.__len__c                 C   r9   r
   )iterr   r   r   r   r   __iter__`   r;   zUnknownFieldSet.__iter__N)	r   r   r   r   r   r   r8   r:   r=   r   r   r   r   r   3   s    	r   )r   google.protobuf.internalr   	_c_moduler   r   r   r   r   r   r   r   <module>   s   
