Skip to main content

polars_core/series/ops/
extend.rs

1use crate::chunked_array::cast::CastOptions;
2use crate::prelude::*;
3
4impl Series {
5    /// Extend with a constant value.
6    pub fn extend_constant(&self, value: AnyValue, n: usize) -> PolarsResult<Self> {
7        let scalar = Scalar::new(value.dtype(), value.into_static());
8        let scalar = scalar.cast_with_options(self.dtype(), CastOptions::NonStrict)?;
9        let s = Series::from_any_values_and_dtype(
10            PlSmallStr::EMPTY,
11            &[scalar.value().clone()],
12            self.dtype(),
13            true,
14        )?;
15        let to_append = s.new_from_index(0, n);
16
17        let mut out = self.clone();
18        out.append(&to_append)?;
19        Ok(out)
20    }
21}