mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 13:04:42 +00:00 
			
		
		
		
	 894c98652c
			
		
	
	
		894c98652c
		
	
	
	
	
		
			
			This switches from using `<div>` to the more semantic `<ul>`, and using class names that rhyme with the classes the search results table uses.
		
			
				
	
	
		
			102 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| #![feature(doc_cfg)]
 | |
| #![feature(target_feature, cfg_target_feature)]
 | |
| 
 | |
| // @has doc_cfg/struct.Portable.html
 | |
| // @!has - '//*[@id="main-content"]/*[@class="item-info"]/*[@class="stab portability"]' ''
 | |
| // @has - '//*[@id="method.unix_and_arm_only_function"]' 'fn unix_and_arm_only_function()'
 | |
| // @has - '//*[@class="stab portability"]' 'Available on Unix and ARM only.'
 | |
| // @has - '//*[@id="method.wasi_and_wasm32_only_function"]' 'fn wasi_and_wasm32_only_function()'
 | |
| // @has - '//*[@class="stab portability"]' 'Available on WASI and WebAssembly only.'
 | |
| pub struct Portable;
 | |
| 
 | |
| // @has doc_cfg/unix_only/index.html \
 | |
| //  '//*[@id="main-content"]/*[@class="item-info"]/*[@class="stab portability"]' \
 | |
| //  'Available on Unix only.'
 | |
| // @matches - '//*[@class="item-name"]//*[@class="stab portability"]' '\AARM\Z'
 | |
| // @count - '//*[@class="stab portability"]' 2
 | |
| #[doc(cfg(unix))]
 | |
| pub mod unix_only {
 | |
|     // @has doc_cfg/unix_only/fn.unix_only_function.html \
 | |
|     //  '//*[@id="main-content"]/*[@class="item-info"]/*[@class="stab portability"]' \
 | |
|     //  'Available on Unix only.'
 | |
|     // @count - '//*[@class="stab portability"]' 1
 | |
|     pub fn unix_only_function() {
 | |
|         content::should::be::irrelevant();
 | |
|     }
 | |
| 
 | |
|     // @has doc_cfg/unix_only/trait.ArmOnly.html \
 | |
|     //  '//*[@id="main-content"]/*[@class="item-info"]/*[@class="stab portability"]' \
 | |
|     //  'Available on Unix and ARM only.'
 | |
|     // @count - '//*[@class="stab portability"]' 1
 | |
|     #[doc(cfg(target_arch = "arm"))]
 | |
|     pub trait ArmOnly {
 | |
|         fn unix_and_arm_only_function();
 | |
|     }
 | |
| 
 | |
|     #[doc(cfg(target_arch = "arm"))]
 | |
|     impl ArmOnly for super::Portable {
 | |
|         fn unix_and_arm_only_function() {}
 | |
|     }
 | |
| }
 | |
| 
 | |
| // @has doc_cfg/wasi_only/index.html \
 | |
| //  '//*[@id="main-content"]/*[@class="item-info"]/*[@class="stab portability"]' \
 | |
| //  'Available on WASI only.'
 | |
| // @matches - '//*[@class="item-name"]//*[@class="stab portability"]' '\AWebAssembly\Z'
 | |
| // @count - '//*[@class="stab portability"]' 2
 | |
| #[doc(cfg(target_os = "wasi"))]
 | |
| pub mod wasi_only {
 | |
|     // @has doc_cfg/wasi_only/fn.wasi_only_function.html \
 | |
|     //  '//*[@id="main-content"]/*[@class="item-info"]/*[@class="stab portability"]' \
 | |
|     //  'Available on WASI only.'
 | |
|     // @count - '//*[@class="stab portability"]' 1
 | |
|     pub fn wasi_only_function() {
 | |
|         content::should::be::irrelevant();
 | |
|     }
 | |
| 
 | |
|     // @has doc_cfg/wasi_only/trait.Wasm32Only.html \
 | |
|     //  '//*[@id="main-content"]/*[@class="item-info"]/*[@class="stab portability"]' \
 | |
|     //  'Available on WASI and WebAssembly only.'
 | |
|     // @count - '//*[@class="stab portability"]' 1
 | |
|     #[doc(cfg(target_arch = "wasm32"))]
 | |
|     pub trait Wasm32Only {
 | |
|         fn wasi_and_wasm32_only_function();
 | |
|     }
 | |
| 
 | |
|     #[doc(cfg(target_arch = "wasm32"))]
 | |
|     impl Wasm32Only for super::Portable {
 | |
|         fn wasi_and_wasm32_only_function() {}
 | |
|     }
 | |
| }
 | |
| 
 | |
| // tagging a function with `#[target_feature]` creates a doc(cfg(target_feature)) node for that
 | |
| // item as well
 | |
| 
 | |
| // the portability header is different on the module view versus the full view
 | |
| // @has doc_cfg/index.html
 | |
| // @matches - '//*[@class="item-name"]//*[@class="stab portability"]' '\Aavx\Z'
 | |
| 
 | |
| // @has doc_cfg/fn.uses_target_feature.html
 | |
| // @has - '//*[@id="main-content"]/*[@class="item-info"]/*[@class="stab portability"]' \
 | |
| //        'Available with target feature avx only.'
 | |
| #[target_feature(enable = "avx")]
 | |
| pub unsafe fn uses_target_feature() {
 | |
|     content::should::be::irrelevant();
 | |
| }
 | |
| 
 | |
| // @has doc_cfg/fn.uses_cfg_target_feature.html
 | |
| // @has - '//*[@id="main-content"]/*[@class="item-info"]/*[@class="stab portability"]' \
 | |
| //        'Available with target feature avx only.'
 | |
| #[doc(cfg(target_feature = "avx"))]
 | |
| pub fn uses_cfg_target_feature() {
 | |
|     uses_target_feature();
 | |
| }
 | |
| 
 | |
| // multiple attributes should be allowed
 | |
| // @has doc_cfg/fn.multiple_attrs.html \
 | |
| //  '//*[@id="main-content"]/*[@class="item-info"]/*[@class="stab portability"]' \
 | |
| //  'Available on x and y and z only.'
 | |
| #[doc(cfg(x))]
 | |
| #[doc(cfg(y), cfg(z))]
 | |
| pub fn multiple_attrs() {}
 |