pub struct RyoServer { /* private fields */ }Expand description
Server wraps Api and implements RyoService
§Locking Strategy: Single Mutex
- All operations (read/write) acquire the same Mutex
- Rationale: Write is high-frequency but short-duration (~100μs)
- Lock contention is ~1% (100 writes/sec × 100μs = 10ms/sec)
- RWLock overhead is unnecessary for this workload
Implementations§
Trait Implementations§
Source§impl RyoService for RyoServer
impl RyoService for RyoServer
Source§async fn ping(self, _: Context) -> PingResponse
async fn ping(self, _: Context) -> PingResponse
Health check with version info for client/server compatibility verification.
Source§async fn status(self, _: Context) -> StatusResponse
async fn status(self, _: Context) -> StatusResponse
Get server status (Api::status) [READ]
Source§async fn discover(
self,
_: Context,
req: DiscoverRequest,
) -> Result<DiscoverResponse, RyoError>
async fn discover( self, _: Context, req: DiscoverRequest, ) -> Result<DiscoverResponse, RyoError>
Discover symbols by pattern (Api::discover) [READ]
Source§async fn overview(
self,
_: Context,
req: OverviewRequest,
) -> Result<OverviewResponse, RyoError>
async fn overview( self, _: Context, req: OverviewRequest, ) -> Result<OverviewResponse, RyoError>
Codebase overview (Api::overview) [READ]
Source§async fn run(self, _: Context, req: RunRequest) -> Result<RunResponse, RyoError>
async fn run(self, _: Context, req: RunRequest) -> Result<RunResponse, RyoError>
Execute mutation (Api::run) [WRITE]
Source§async fn cascade(
self,
_: Context,
req: CascadeRequest,
) -> Result<CascadeResponse, RyoError>
async fn cascade( self, _: Context, req: CascadeRequest, ) -> Result<CascadeResponse, RyoError>
Graph cascade analysis (Api::graph_cascade) [READ]
Source§async fn graph_summary(
self,
_: Context,
req: GraphSummaryRequest,
) -> Result<GraphSummaryResponse, RyoError>
async fn graph_summary( self, _: Context, req: GraphSummaryRequest, ) -> Result<GraphSummaryResponse, RyoError>
Graph summary (Api::graph_summary) [READ]
Source§async fn graph_type(
self,
_: Context,
req: TypeAnalysisRequest,
) -> Result<TypeAnalysisResponse, RyoError>
async fn graph_type( self, _: Context, req: TypeAnalysisRequest, ) -> Result<TypeAnalysisResponse, RyoError>
Type analysis (Api::graph_type) [READ]
Source§async fn graph_flow(
self,
_: Context,
req: FlowAnalysisRequest,
) -> Result<FlowAnalysisResponse, RyoError>
async fn graph_flow( self, _: Context, req: FlowAnalysisRequest, ) -> Result<FlowAnalysisResponse, RyoError>
Flow analysis (Api::graph_flow) [READ]
Source§async fn graph_borrow(
self,
_: Context,
req: BorrowAnalysisRequest,
) -> Result<BorrowAnalysisResponse, RyoError>
async fn graph_borrow( self, _: Context, req: BorrowAnalysisRequest, ) -> Result<BorrowAnalysisResponse, RyoError>
Borrow analysis (Api::graph_borrow) [READ]
Source§async fn graph_lock(
self,
_: Context,
req: LockAnalysisRequest,
) -> Result<LockAnalysisResponse, RyoError>
async fn graph_lock( self, _: Context, req: LockAnalysisRequest, ) -> Result<LockAnalysisResponse, RyoError>
Lock analysis (Api::graph_lock) [READ]
Source§async fn graph_chain(
self,
_: Context,
req: ChainAnalysisRequest,
) -> Result<ChainAnalysisResponse, RyoError>
async fn graph_chain( self, _: Context, req: ChainAnalysisRequest, ) -> Result<ChainAnalysisResponse, RyoError>
Chain analysis - transitive call chain traversal (Api::graph_chain) [READ]
Source§async fn suggest(
self,
_: Context,
req: SuggestRequest,
) -> Result<SuggestResponse, RyoError>
async fn suggest( self, _: Context, req: SuggestRequest, ) -> Result<SuggestResponse, RyoError>
Code improvement suggestions (Api::suggest) [READ]
Source§async fn suggest_apply(
self,
_: Context,
req: SuggestApplyRequest,
) -> Result<SuggestApplyResponse, RyoError>
async fn suggest_apply( self, _: Context, req: SuggestApplyRequest, ) -> Result<SuggestApplyResponse, RyoError>
Apply suggestions by ID (Api::suggest_apply) [WRITE]
Source§async fn suggest_choices(
self,
_: Context,
req: SuggestChoicesRequest,
) -> Result<SuggestChoicesResponse, RyoError>
async fn suggest_choices( self, _: Context, req: SuggestChoicesRequest, ) -> Result<SuggestChoicesResponse, RyoError>
Get design choices for a suggestion (Api::suggest_choices) [READ]
Source§async fn suggest_verify(
self,
_: Context,
req: SuggestVerifyRequest,
) -> Result<SuggestVerifyResponse, RyoError>
async fn suggest_verify( self, _: Context, req: SuggestVerifyRequest, ) -> Result<SuggestVerifyResponse, RyoError>
Verify a suggestion before applying (Api::suggest_verify) [READ]
Source§async fn suggest_compare(
self,
_: Context,
req: SuggestCompareRequest,
) -> Result<SuggestCompareResponse, RyoError>
async fn suggest_compare( self, _: Context, req: SuggestCompareRequest, ) -> Result<SuggestCompareResponse, RyoError>
Compare design choices for a suggestion (Api::suggest_compare) [READ]
Source§async fn suggest_generate(
self,
_: Context,
req: SuggestGenerateRequest,
) -> Result<SuggestGenerateResponse, RyoError>
async fn suggest_generate( self, _: Context, req: SuggestGenerateRequest, ) -> Result<SuggestGenerateResponse, RyoError>
Generate code from parameterized patterns (Api::suggest_generate) [READ/WRITE]
Source§async fn spec(
self,
_: Context,
req: SpecRequest,
) -> Result<SpecResponse, RyoError>
async fn spec( self, _: Context, req: SpecRequest, ) -> Result<SpecResponse, RyoError>
Query spec hierarchy (Api::spec) [READ]
Source§async fn query_ryoql(
self,
_: Context,
req: RyoqlRequest,
) -> Result<QueryResponse, RyoError>
async fn query_ryoql( self, _: Context, req: RyoqlRequest, ) -> Result<QueryResponse, RyoError>
Execute a RyoQL query (Api::query_ryoql) [READ]
Source§async fn search_literal(
self,
_: Context,
req: LiteralSearchRequest,
) -> Result<LiteralSearchResponse, RyoError>
async fn search_literal( self, _: Context, req: LiteralSearchRequest, ) -> Result<LiteralSearchResponse, RyoError>
Search literals in source code (Api::search_literal) [READ]
Source§fn serve(self) -> ServeRyoService<Self>
fn serve(self) -> ServeRyoService<Self>
Returns a serving function to use with
InFlightRequest::execute.
Auto Trait Implementations§
impl Freeze for RyoServer
impl !RefUnwindSafe for RyoServer
impl Send for RyoServer
impl Sync for RyoServer
impl Unpin for RyoServer
impl UnsafeUnpin for RyoServer
impl !UnwindSafe for RyoServer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more