From 93a610fa02d5f405423b2d783b96eb4d57a5bed1 Mon Sep 17 00:00:00 2001 From: ge Date: Tue, 24 Mar 2026 21:43:46 +0300 Subject: [PATCH] feat: add bounds(), make Range private back --- ranges.v | 9 ++++++--- ranges_test.v | 8 ++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/ranges.v b/ranges.v index 4ce5f7c..8ec601d 100644 --- a/ranges.v +++ b/ranges.v @@ -3,9 +3,7 @@ module ranges import strconv import math.big -@[noinit] -pub struct Range[T] { -pub: +struct Range[T] { start T end T step T @@ -31,6 +29,11 @@ pub fn (mut r Range[T]) reset() { r.cur = r.start } +// bounds returns the start, end and step values of range. +pub fn (r Range[T]) bounds() (T, T, T) { + return r.start, r.end, r.step +} + // with_step returns copy of the range with new step value. pub fn (r Range[T]) with_step[T](step T) Range[T] { return Range[T]{ diff --git a/ranges_test.v b/ranges_test.v index 9aa5794..1af5efe 100644 --- a/ranges_test.v +++ b/ranges_test.v @@ -179,3 +179,11 @@ fn test_range_new_with_step() { } assert result == [0, 2, 4] } + +fn test_range_bounds() { + r := ranges.range(0, 10, 2) + a, b, c := r.bounds() + assert a == 0 + assert b == 10 + assert c == 2 +}