Skip to content

Commit 978f79a

Browse files
PraneethJainbarche
authored andcommitted
feat: pretty printing for StdList and StdForwardList
1 parent 61272b1 commit 978f79a

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

src/StdLib/StdForwardList.jl

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,16 @@ Base.:(==)(a::StdForwardListIterator, b::StdForwardListIterator) = iterator_is_e
1010
_forward_list_iteration_tuple(v::StdForwardList, state::StdForwardListIterator) = (state == iteratorend(v)) ? nothing : (iterator_value(state), state)
1111
Base.iterate(v::StdForwardList) = _forward_list_iteration_tuple(v, iteratorbegin(v))
1212
Base.iterate(v::StdForwardList, state::StdForwardListIterator) = (state != iteratorend(v)) ? _forward_list_iteration_tuple(v, iterator_next(state)) : nothing
13+
14+
function Base.show(io::IO, ::MIME"text/plain", container::StdForwardList)
15+
print(io, "StdForwardList[")
16+
17+
for (i, item) in enumerate(Iterators.take(container, 5))
18+
i > 1 && print(io, ", ")
19+
print(io, item)
20+
end
21+
22+
length(container) > 5 && print(io, ", ...")
23+
24+
print(io, "]")
25+
end

src/StdLib/StdList.jl

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,16 @@ Base.:(==)(a::StdListIterator, b::StdListIterator) = iterator_is_equal(a, b)
1616
_list_iteration_tuple(v::StdList, state::StdListIterator) = (state == iteratorend(v)) ? nothing : (iterator_value(state), state)
1717
Base.iterate(v::StdList) = _list_iteration_tuple(v, iteratorbegin(v))
1818
Base.iterate(v::StdList, state::StdListIterator) = (state != iteratorend(v)) ? _list_iteration_tuple(v, iterator_next(state)) : nothing
19+
20+
function Base.show(io::IO, ::MIME"text/plain", container::StdList)
21+
print(io, "StdList[")
22+
23+
for (i, item) in enumerate(Iterators.take(container, 5))
24+
i > 1 && print(io, ", ")
25+
print(io, item)
26+
end
27+
28+
length(container) > 5 && print(io, ", ...")
29+
30+
print(io, "]")
31+
end

0 commit comments

Comments
 (0)