On Thursday, 4 August 2022 at 13:08:21 UTC, pascal111 wrote:
```D import std.stdio; import std.string;struct Student { string name; int number; string toString() const { return format("%s(%s)", name, number); } } struct School { Student[] students; } struct StudentRange { Student[] students; this(School school) { this.students = school.students; } @property bool empty() const { return students.length == 0; } @property ref Student front() { return students[0]; } void popFront() { students = students[1 .. $]; } } void main() {auto school = School([ Student("Raj", 1), Student("John", 2), Student("Ram", 3)]);auto range = StudentRange(school); writeln(range); writeln(school.students.length); writeln(range.front); range.popFront; writeln(range.empty); writeln(range); } ```
😀
