结构体 Group

1.29.0 · 源代码
pub struct Group(/* private fields */);
展开描述

一个带有分隔符的 token 流。

一个 `Group` 内部包含一个 `TokenStream`,该 `TokenStream` 被 `Delimiter` 包围。

实现§

源代码§

impl Group

1.29.0 · 源代码

pub fn new(delimiter: Delimiter, stream: TokenStream) -> Group

创建一个新的 `Group`,带有给定的分隔符和 token 流。

此构造函数会将此 group 的 span 设置为 `Span::call_site()`。要更改 span,可以使用下面的 `set_span` 方法。

1.29.0 · 源代码

pub fn delimiter(&self) -> Delimiter

返回此 `Group` 的分隔符

1.29.0 · 源代码

pub fn stream(&self) -> TokenStream

返回包含在此 `Group` 中的 token 的 `TokenStream`。

请注意,返回的 token 流不包含上面返回的分隔符。

1.29.0 · 源代码

pub fn span(&self) -> Span

返回此 token 流的分隔符的 span,该 span 覆盖整个 `Group`。

pub fn span(&self) -> Span {
           ^^^^^^^
1.55.0 · 源代码

pub fn span_open(&self) -> Span

返回指向此 group 的起始分隔符的 span。

pub fn span_open(&self) -> Span {
                ^
1.55.0 · 源代码

pub fn span_close(&self) -> Span

返回指向此 group 的结束分隔符的 span。

pub fn span_close(&self) -> Span {
                       ^
1.29.0 · 源代码

pub fn set_span(&mut self, span: Span)

配置此 `Group` 的分隔符的 span,但不配置其内部 token 的 span。

此方法**不会**设置此 group 涵盖的所有内部 token 的 span,而只会设置 `Group` 级别上的分隔符 token 的 span。

Trait 实现§

1.29.0 · 源代码§

impl Clone for Group

源代码§

fn clone(&self) -> Group

返回值的副本。 更多信息
1.0.0 · 源代码§

fn clone_from(&mut self, source: &Self)

执行从 `source` 的复制赋值操作。 更多信息
1.29.0 · 源代码§

impl Debug for Group

源代码§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

使用给定的 formatter 格式化值。 更多信息
1.29.0 · 源代码§

impl Display for Group

将 group 打印为字符串,该字符串应能无损地转换回相同的 group(除了 span 之外),可能除了带有 `Delimiter::None` 分隔符的 `TokenTree::Group`。

源代码§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

使用给定的 formatter 格式化值。 更多信息
1.29.0 · 源代码§

impl From<Group> for TokenTree

源代码§

fn from(g: Group) -> TokenTree

从输入类型转换为此类型。
源代码§

impl ToTokens for Group

源代码§

fn to_tokens(&self, tokens: &mut TokenStream)

🔬这是一个仅限 nightly 的实验性 API。(proc_macro_totokens #130977)
将 `self` 写入给定的 `TokenStream`。 更多信息
源代码§

fn to_token_stream(&self) -> TokenStream

🔬这是一个仅限 nightly 的实验性 API。(proc_macro_totokens #130977)
将 `self` 直接转换为 `TokenStream` 对象。 更多信息
源代码§

fn into_token_stream(self) -> TokenStream
where Self: Sized,

🔬这是一个仅限 nightly 的实验性 API。(proc_macro_totokens #130977)
将 `self` 直接转换为 `TokenStream` 对象。 更多信息
1.29.0 · 源代码§

impl !Send for Group

1.29.0 · 源代码§

impl !Sync for Group

自动 Trait 实现§

普适实现§

源代码§

impl<T> Any for T
where T: 'static + ?Sized,

源代码§

fn type_id(&self) -> TypeId

获取 `self` 的 `TypeId`。 更多信息
源代码§

impl<T> Borrow<T> for T
where T: ?Sized,

源代码§

fn borrow(&self) -> &T

从拥有的值进行不可变借用。 更多信息
源代码§

impl<T> BorrowMut<T> for T
where T: ?Sized,

源代码§

fn borrow_mut(&mut self) -> &mut T

从拥有的值进行可变借用。 更多信息
源代码§

impl<T> CloneToUninit for T
where T: Clone,

源代码§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬这是一个仅限 nightly 的实验性 API。(clone_to_uninit #126799)
将 `self` 的内容复制赋值给 `dest`。 更多信息
源代码§

impl<T> From<T> for T

源代码§

fn from(t: T) -> T

返回未更改的参数。

源代码§

impl<T, U> Into<U> for T
where U: From<T>,

源代码§

fn into(self) -> U

调用 `U::from(self)`。

也就是说,此转换取决于 `From<T> for U` 的实现选择执行的操作。

源代码§

impl<T> ToOwned for T
where T: Clone,

源代码§

type Owned = T

获取所有权后的结果类型。
源代码§

fn to_owned(&self) -> T

从借用的数据创建拥有的数据,通常通过克隆。 更多信息
源代码§

fn clone_into(&self, target: &mut T)

使用借用的数据替换拥有的数据,通常通过克隆。 更多信息
源代码§

impl<T> ToString for T
where T: Display + ?Sized,

源代码§

fn to_string(&self) -> String

将给定值转换为 `String`。 更多信息
源代码§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

源代码§

type Error = Infallible

在转换错误时返回的类型。
源代码§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

执行转换。
源代码§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

源代码§

type Error = <U as TryFrom<T>>::Error

在转换错误时返回的类型。
源代码§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

执行转换。