modql 0.4.1

Rust implementation for Model Query Language support
Documentation
use crate::field::FieldMeta;

pub struct FieldMetas(&'static [&'static FieldMeta]);

impl FieldMetas {
	pub const fn new(metas: &'static [&'static FieldMeta]) -> Self {
		Self(metas)
	}

	pub fn iter(&self) -> core::slice::Iter<'_, &'static FieldMeta> {
		self.0.iter()
	}

	pub fn sql_col_refs(&self) -> String {
		let cols = self.0.iter().map(|meta| meta.sql_col_ref()).collect::<Vec<_>>();
		cols.join(", ")
	}

	pub fn sql_col_refs_for(&self, prop_names: &[&str]) -> String {
		let cols = self
			.0
			.iter()
			.filter(|m| prop_names.contains(&m.prop_name))
			.map(|meta| meta.sql_col_ref())
			.collect::<Vec<_>>();
		cols.join(", ")
	}
}