candding 0.1.0

Pure candle embeddings for Rust with no ONNX: dense, sparse, multi-vector and rerank models today, image models on the roadmap
Documentation
use super::*;

#[test]
fn the_modernbert_entry_holds_the_published_shape() {
  let modernbert: Vec<_> = all()
    .into_iter()
    .filter(|d| d.family == Family::ModernBert)
    .collect();
  assert_eq!(
    modernbert.len(),
    1,
    "Alibaba-NLP/gte-modernbert-base, the family's only catalog entry"
  );
  let d = &modernbert[0];
  assert_eq!(d.id, "Alibaba-NLP/gte-modernbert-base");
  assert_eq!(d.dim, 768, "{}", d.id);
  assert_eq!(d.default_max_length, 8192, "{}", d.id);
  assert_eq!(d.pooling, Pooling::Cls, "{}", d.id);
  assert!(
    d.query_template.is_none() && d.passage_template.is_none(),
    "{}",
    d.id
  );
  assert!(d.default_instruction.is_none(), "{}", d.id);
  assert!(d.dense_dirs.is_empty(), "{}", d.id);
  assert!(!d.mrl, "{}", d.id);
  assert!(!d.layer_norm_after_pooling, "{}", d.id);
  assert_eq!(d.default_dtype, DType::F32, "{}", d.id);
  assert_eq!(d.license, "Apache-2.0", "{}", d.id);
  assert_eq!(d.size_gb, 0.30, "{}", d.id);
  assert_eq!(d.phase, 2, "{}", d.id);
  assert_eq!(
    weights_format(&d.id),
    WeightsFormat::Safetensors,
    "{}",
    d.id
  );
  for dtype in [DType::F32, DType::F16] {
    assert!(!dtype_needs_accelerator(&d.id, dtype), "{} {dtype:?}", d.id);
  }
  assert!(dtype_needs_accelerator(&d.id, DType::BF16), "{}", d.id);
  assert_eq!(d.backends.cuda, Support::Verified, "{}", d.id);
  assert!(!d.gated, "{}", d.id);
}