
    䙉i                        d dl mZ d dlmZ d dlmZmZmZmZ  ed       G d d             Z	 ed       G d d	             Z
ee
ged
   f   Z G d de      Zy
)    )annotations)	dataclass)	AwaitableCallableOptionalProtocolT)frozenc                  ,    e Zd ZU ded<   ded<   ded<   y)Pose2DfloatxythetaN)__name__
__module____qualname____annotations__     C/home/nelsen/Projects/HRI/edge-proxy/edge_proxy/nav_backend/base.pyr   r      s    HHLr   r   c                  B    e Zd ZU ded<   dZded<   dZded<   dZded<   y)		NavUpdatestrstatusNzOptional[float]progresszOptional[str]reason
error_code)r   r   r   r   r   r   r   r   r   r   r   r      s%    K $Ho$ FM  $J$r   r   Nc                  L    e Zd ZddZddZ	 d	 	 	 	 	 	 	 	 	 	 	 	 	 ddZd	d
dZy)
NavBackendc                   K   y wNr   selfs    r   startzNavBackend.start   	        c                   K   y wr!   r   r"   s    r   stopzNavBackend.stop   r%   r&   c                   K   yw)zwRun navigation until completion.

        Implementations should invoke `on_update` with intermediate updates.
        Nr   )r#   
request_iddestinationposespeed	on_updateframe_ids          r   navigate_to_posezNavBackend.navigate_to_pose    s     r&   c                   K   y wr!   r   )r#   r*   r   s      r   cancelzNavBackend.cancel.   r%   r&   N)returnNone)map)r*   r   r+   r   r,   r   r-   r   r.   NavUpdateCallbackr/   r   r3   r4   ) )r*   r   r   r   r3   r4   )r   r   r   r$   r(   r0   r2   r   r   r   r   r      s_       	
  %  
r   r   )
__future__r   dataclassesr   typingr   r   r   r   r   r   r6   r   r   r   r   <module>r;      sq    " ! : : $   $% % % i[)D/9:  r   