Skip to main content

Server

Trait Server 

Source
pub trait Server {
    type TokenStream: 'static + Clone + Default;
    type Span: 'static + Copy + Eq + Hash;
    type Symbol: 'static;

Show 35 methods // Required methods fn globals(&mut self) -> ExpnGlobals<Self::Span>; fn intern_symbol(ident: &str) -> Self::Symbol; fn with_symbol_string(symbol: &Self::Symbol, f: impl FnOnce(&str)); fn injected_env_var(&mut self, var: &str) -> Option<String>; fn track_env_var(&mut self, var: &str, value: Option<&str>); fn track_path(&mut self, path: &str); fn literal_from_str( &mut self, s: &str, ) -> Result<Literal<Self::Span, Self::Symbol>, String>; fn emit_diagnostic(&mut self, diagnostic: Diagnostic<Self::Span>); fn ts_drop(&mut self, stream: Self::TokenStream); fn ts_clone(&mut self, stream: &Self::TokenStream) -> Self::TokenStream; fn ts_is_empty(&mut self, stream: &Self::TokenStream) -> bool; fn ts_expand_expr( &mut self, stream: &Self::TokenStream, ) -> Result<Self::TokenStream, ()>; fn ts_from_str(&mut self, src: &str) -> Result<Self::TokenStream, String>; fn ts_to_string(&mut self, stream: &Self::TokenStream) -> String; fn ts_from_token_tree( &mut self, tree: TokenTree<Self::TokenStream, Self::Span, Self::Symbol>, ) -> Self::TokenStream; fn ts_concat_trees( &mut self, base: Option<Self::TokenStream>, trees: Vec<TokenTree<Self::TokenStream, Self::Span, Self::Symbol>>, ) -> Self::TokenStream; fn ts_concat_streams( &mut self, base: Option<Self::TokenStream>, streams: Vec<Self::TokenStream>, ) -> Self::TokenStream; fn ts_into_trees( &mut self, stream: Self::TokenStream, ) -> Vec<TokenTree<Self::TokenStream, Self::Span, Self::Symbol>>; fn span_debug(&mut self, span: Self::Span) -> String; fn span_parent(&mut self, span: Self::Span) -> Option<Self::Span>; fn span_source(&mut self, span: Self::Span) -> Self::Span; fn span_byte_range(&mut self, span: Self::Span) -> Range<usize> โ“˜; fn span_start(&mut self, span: Self::Span) -> Self::Span; fn span_end(&mut self, span: Self::Span) -> Self::Span; fn span_line(&mut self, span: Self::Span) -> usize; fn span_column(&mut self, span: Self::Span) -> usize; fn span_file(&mut self, span: Self::Span) -> String; fn span_local_file(&mut self, span: Self::Span) -> Option<String>; fn span_join( &mut self, span: Self::Span, other: Self::Span, ) -> Option<Self::Span>; fn span_subspan( &mut self, span: Self::Span, start: Bound<usize>, end: Bound<usize>, ) -> Option<Self::Span>; fn span_resolved_at( &mut self, span: Self::Span, at: Self::Span, ) -> Self::Span; fn span_source_text(&mut self, span: Self::Span) -> Option<String>; fn span_save_span(&mut self, span: Self::Span) -> usize; fn span_recover_proc_macro_span(&mut self, id: usize) -> Self::Span; fn symbol_normalize_and_validate_ident( &mut self, string: &str, ) -> Result<Self::Symbol, ()>;
}
๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)

Required Associated Typesยง

Source

type TokenStream: 'static + Clone + Default

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

type Span: 'static + Copy + Eq + Hash

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

type Symbol: 'static

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)

Required Methodsยง

Source

fn globals(&mut self) -> ExpnGlobals<Self::Span>

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn intern_symbol(ident: &str) -> Self::Symbol

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)

Intern a symbol received from RPC

Source

fn with_symbol_string(symbol: &Self::Symbol, f: impl FnOnce(&str))

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)

Recover the string value of a symbol, and invoke a callback with it.

Source

fn injected_env_var(&mut self, var: &str) -> Option<String>

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn track_env_var(&mut self, var: &str, value: Option<&str>)

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn track_path(&mut self, path: &str)

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn literal_from_str( &mut self, s: &str, ) -> Result<Literal<Self::Span, Self::Symbol>, String>

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn emit_diagnostic(&mut self, diagnostic: Diagnostic<Self::Span>)

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn ts_drop(&mut self, stream: Self::TokenStream)

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn ts_clone(&mut self, stream: &Self::TokenStream) -> Self::TokenStream

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn ts_is_empty(&mut self, stream: &Self::TokenStream) -> bool

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn ts_expand_expr( &mut self, stream: &Self::TokenStream, ) -> Result<Self::TokenStream, ()>

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn ts_from_str(&mut self, src: &str) -> Result<Self::TokenStream, String>

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn ts_to_string(&mut self, stream: &Self::TokenStream) -> String

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn ts_from_token_tree( &mut self, tree: TokenTree<Self::TokenStream, Self::Span, Self::Symbol>, ) -> Self::TokenStream

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn ts_concat_trees( &mut self, base: Option<Self::TokenStream>, trees: Vec<TokenTree<Self::TokenStream, Self::Span, Self::Symbol>>, ) -> Self::TokenStream

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn ts_concat_streams( &mut self, base: Option<Self::TokenStream>, streams: Vec<Self::TokenStream>, ) -> Self::TokenStream

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn ts_into_trees( &mut self, stream: Self::TokenStream, ) -> Vec<TokenTree<Self::TokenStream, Self::Span, Self::Symbol>>

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn span_debug(&mut self, span: Self::Span) -> String

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn span_parent(&mut self, span: Self::Span) -> Option<Self::Span>

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn span_source(&mut self, span: Self::Span) -> Self::Span

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn span_byte_range(&mut self, span: Self::Span) -> Range<usize> โ“˜

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn span_start(&mut self, span: Self::Span) -> Self::Span

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn span_end(&mut self, span: Self::Span) -> Self::Span

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn span_line(&mut self, span: Self::Span) -> usize

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn span_column(&mut self, span: Self::Span) -> usize

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn span_file(&mut self, span: Self::Span) -> String

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn span_local_file(&mut self, span: Self::Span) -> Option<String>

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn span_join( &mut self, span: Self::Span, other: Self::Span, ) -> Option<Self::Span>

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn span_subspan( &mut self, span: Self::Span, start: Bound<usize>, end: Bound<usize>, ) -> Option<Self::Span>

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn span_resolved_at(&mut self, span: Self::Span, at: Self::Span) -> Self::Span

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn span_source_text(&mut self, span: Self::Span) -> Option<String>

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn span_save_span(&mut self, span: Self::Span) -> usize

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn span_recover_proc_macro_span(&mut self, id: usize) -> Self::Span

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)
Source

fn symbol_normalize_and_validate_ident( &mut self, string: &str, ) -> Result<Self::Symbol, ()>

๐Ÿ”ฌThis is a nightly-only experimental API. (proc_macro_internals)

Dyn Compatibilityยง

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementorsยง