message: ListGen implement serde Serializable
diff: @@ -34,6 +34,7 @@ use gazebo::{
  coerce::{coerce, coerce_ref, Coerce},
  prelude::*,
  };
  +use serde::{ser::SerializeSeq, Serialize};
  use crate::{
  self as starlark,
  @@ -574,6 +575,21 @@ where
  }
  }
  +impl<'v, T: ListLike<'v>> Serialize for ListGen<T> {
  + fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
  + where
  + S: serde::Serializer,
  + {
  + let mut seq_serializer = serializer.serialize_seq(Some(self.0.content().len()))?;
  +
  + for e in self.0.content().iter() {
  + seq_serializer.serialize_element(&e.to_value())?;
  + }
  +
  + seq_serializer.end()
  + }
  +}
  +
  /// Like `ValueOf`, but only validates item types; does not construct or store a
  /// vec. Use `to_vec` to get a Vec.
  pub struct ListOf<'v, V: UnpackValue<'v>> {
  