Vendor dependencies
Let's see how I like this workflow.
This commit is contained in:
parent
34d1830413
commit
9c435dc440
7500 changed files with 1665121 additions and 99 deletions
46
vendor/cxx-build/src/syntax/doc.rs
vendored
Normal file
46
vendor/cxx-build/src/syntax/doc.rs
vendored
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
use proc_macro2::TokenStream;
|
||||
use quote::{quote, ToTokens};
|
||||
use syn::LitStr;
|
||||
|
||||
pub struct Doc {
|
||||
pub(crate) hidden: bool,
|
||||
fragments: Vec<LitStr>,
|
||||
}
|
||||
|
||||
impl Doc {
|
||||
pub fn new() -> Self {
|
||||
Doc {
|
||||
hidden: false,
|
||||
fragments: Vec::new(),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn push(&mut self, lit: LitStr) {
|
||||
self.fragments.push(lit);
|
||||
}
|
||||
|
||||
#[allow(dead_code)] // only used by cxx-build, not cxxbridge-macro
|
||||
pub fn is_empty(&self) -> bool {
|
||||
self.fragments.is_empty()
|
||||
}
|
||||
|
||||
#[allow(dead_code)] // only used by cxx-build, not cxxbridge-macro
|
||||
pub fn to_string(&self) -> String {
|
||||
let mut doc = String::new();
|
||||
for lit in &self.fragments {
|
||||
doc += &lit.value();
|
||||
doc.push('\n');
|
||||
}
|
||||
doc
|
||||
}
|
||||
}
|
||||
|
||||
impl ToTokens for Doc {
|
||||
fn to_tokens(&self, tokens: &mut TokenStream) {
|
||||
let fragments = &self.fragments;
|
||||
tokens.extend(quote! { #(#[doc = #fragments])* });
|
||||
if self.hidden {
|
||||
tokens.extend(quote! { #[doc(hidden)] });
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue