mirror of
https://git.proxmox.com/git/rustc
synced 2025-08-18 20:02:54 +00:00
33 lines
660 B
Rust
33 lines
660 B
Rust
mod util;
|
|
use std::marker::PhantomData;
|
|
|
|
use schemars::JsonSchema;
|
|
use util::*;
|
|
|
|
struct MyIterator;
|
|
|
|
impl Iterator for MyIterator {
|
|
type Item = String;
|
|
|
|
fn next(&mut self) -> Option<Self::Item> {
|
|
unimplemented!()
|
|
}
|
|
}
|
|
|
|
// The default trait bounds would require T to implement JsonSchema,
|
|
// which MyIterator does not.
|
|
#[derive(JsonSchema)]
|
|
#[schemars(bound = "T::Item: JsonSchema", rename = "MyContainer")]
|
|
pub struct MyContainer<T>
|
|
where
|
|
T: Iterator,
|
|
{
|
|
pub associated: T::Item,
|
|
pub generic: PhantomData<T>,
|
|
}
|
|
|
|
#[test]
|
|
fn manual_bound_set() -> TestResult {
|
|
test_default_generated_schema::<MyContainer<MyIterator>>("bound")
|
|
}
|