mirror of
https://github.com/huggingface/candle.git
synced 2025-06-17 02:58:50 +00:00

* module docs * varbuilder gguf docs * add a link to gguf files * small additonal mod doc titles * safetensor docs * more core docs * more module docs in canlde_core * 2 more link fixes
26 lines
584 B
Rust
26 lines
584 B
Rust
//! TensorScalar Enum and Trait
|
|
//!
|
|
use crate::{Result, Tensor, WithDType};
|
|
|
|
pub enum TensorScalar {
|
|
Tensor(Tensor),
|
|
Scalar(Tensor),
|
|
}
|
|
|
|
pub trait TensorOrScalar {
|
|
fn to_tensor_scalar(self) -> Result<TensorScalar>;
|
|
}
|
|
|
|
impl TensorOrScalar for &Tensor {
|
|
fn to_tensor_scalar(self) -> Result<TensorScalar> {
|
|
Ok(TensorScalar::Tensor(self.clone()))
|
|
}
|
|
}
|
|
|
|
impl<T: WithDType> TensorOrScalar for T {
|
|
fn to_tensor_scalar(self) -> Result<TensorScalar> {
|
|
let scalar = Tensor::new(self, &crate::Device::Cpu)?;
|
|
Ok(TensorScalar::Scalar(scalar))
|
|
}
|
|
}
|