Use Self in implementations whenever possible
All checks were successful
/ test (pull_request) Successful in 3m34s

This commit is contained in:
Aaron Fenyes 2025-08-05 14:12:31 -07:00
parent e0230a6fde
commit 1d03d1e8c2
6 changed files with 43 additions and 43 deletions

View file

@ -175,8 +175,8 @@ impl Sphere {
label: String, label: String,
color: ElementColor, color: ElementColor,
representation: DVector<f64>, representation: DVector<f64>,
) -> Sphere { ) -> Self {
Sphere { Self {
id, id,
label, label,
color, color,
@ -194,8 +194,8 @@ impl Element for Sphere {
"sphere".to_string() "sphere".to_string()
} }
fn default(id: String, id_num: u64) -> Sphere { fn default(id: String, id_num: u64) -> Self {
Sphere::new( Self::new(
id, id,
format!("Sphere {id_num}"), format!("Sphere {id_num}"),
[0.75_f32, 0.75_f32, 0.75_f32], [0.75_f32, 0.75_f32, 0.75_f32],
@ -275,8 +275,8 @@ impl Point {
label: String, label: String,
color: ElementColor, color: ElementColor,
representation: DVector<f64>, representation: DVector<f64>,
) -> Point { ) -> Self {
Point { Self {
id, id,
label, label,
color, color,
@ -294,8 +294,8 @@ impl Element for Point {
"point".to_string() "point".to_string()
} }
fn default(id: String, id_num: u64) -> Point { fn default(id: String, id_num: u64) -> Self {
Point::new( Self::new(
id, id,
format!("Point {id_num}"), format!("Point {id_num}"),
[0.75_f32, 0.75_f32, 0.75_f32], [0.75_f32, 0.75_f32, 0.75_f32],
@ -348,7 +348,7 @@ impl ProblemPoser for Point {
format!("Point \"{}\" should be indexed before writing problem data", self.id).as_str() format!("Point \"{}\" should be indexed before writing problem data", self.id).as_str()
); );
problem.gram.push_sym(index, index, 0.0); problem.gram.push_sym(index, index, 0.0);
problem.frozen.push(Point::WEIGHT_COMPONENT, index, 0.5); problem.frozen.push(Self::WEIGHT_COMPONENT, index, 0.5);
problem.guess.set_column(index, &self.representation.get_clone_untracked()); problem.guess.set_column(index, &self.representation.get_clone_untracked());
} }
} }
@ -393,7 +393,7 @@ pub struct InversiveDistanceRegulator {
} }
impl InversiveDistanceRegulator { impl InversiveDistanceRegulator {
pub fn new(subjects: [Rc<dyn Element>; 2]) -> InversiveDistanceRegulator { pub fn new(subjects: [Rc<dyn Element>; 2]) -> Self {
let representations = subjects.each_ref().map(|subj| subj.representation()); let representations = subjects.each_ref().map(|subj| subj.representation());
let measurement = create_memo(move || { let measurement = create_memo(move || {
representations[0].with(|rep_0| representations[0].with(|rep_0|
@ -406,7 +406,7 @@ impl InversiveDistanceRegulator {
let set_point = create_signal(SpecifiedValue::from_empty_spec()); let set_point = create_signal(SpecifiedValue::from_empty_spec());
let serial = Self::next_serial(); let serial = Self::next_serial();
InversiveDistanceRegulator { subjects, measurement, set_point, serial } Self { subjects, measurement, set_point, serial }
} }
} }
@ -453,7 +453,7 @@ pub struct HalfCurvatureRegulator {
} }
impl HalfCurvatureRegulator { impl HalfCurvatureRegulator {
pub fn new(subject: Rc<dyn Element>) -> HalfCurvatureRegulator { pub fn new(subject: Rc<dyn Element>) -> Self {
let measurement = subject.representation().map( let measurement = subject.representation().map(
|rep| rep[Sphere::CURVATURE_COMPONENT] |rep| rep[Sphere::CURVATURE_COMPONENT]
); );
@ -461,7 +461,7 @@ impl HalfCurvatureRegulator {
let set_point = create_signal(SpecifiedValue::from_empty_spec()); let set_point = create_signal(SpecifiedValue::from_empty_spec());
let serial = Self::next_serial(); let serial = Self::next_serial();
HalfCurvatureRegulator { subject, measurement, set_point, serial } Self { subject, measurement, set_point, serial }
} }
} }

View file

@ -15,8 +15,8 @@ struct DiagnosticsState {
} }
impl DiagnosticsState { impl DiagnosticsState {
fn new(initial_tab: String) -> DiagnosticsState { fn new(initial_tab: String) -> Self {
DiagnosticsState { active_tab: create_signal(initial_tab) } Self { active_tab: create_signal(initial_tab) }
} }
} }

View file

@ -41,8 +41,8 @@ struct SceneSpheres {
} }
impl SceneSpheres { impl SceneSpheres {
fn new() -> SceneSpheres { fn new() -> Self {
SceneSpheres { Self {
representations: Vec::new(), representations: Vec::new(),
colors_with_opacity: Vec::new(), colors_with_opacity: Vec::new(),
highlights: Vec::new(), highlights: Vec::new(),
@ -71,8 +71,8 @@ struct ScenePoints {
} }
impl ScenePoints { impl ScenePoints {
fn new() -> ScenePoints { fn new() -> Self {
ScenePoints { Self {
representations: Vec::new(), representations: Vec::new(),
colors_with_opacity: Vec::new(), colors_with_opacity: Vec::new(),
highlights: Vec::new(), highlights: Vec::new(),
@ -97,8 +97,8 @@ pub struct Scene {
} }
impl Scene { impl Scene {
fn new() -> Scene { fn new() -> Self {
Scene { Self {
spheres: SceneSpheres::new(), spheres: SceneSpheres::new(),
points: ScenePoints::new(), points: ScenePoints::new(),
} }

View file

@ -59,12 +59,12 @@ pub struct MatrixEntry {
pub struct PartialMatrix(Vec<MatrixEntry>); pub struct PartialMatrix(Vec<MatrixEntry>);
impl PartialMatrix { impl PartialMatrix {
pub fn new() -> PartialMatrix { pub fn new() -> Self {
PartialMatrix(Vec::<MatrixEntry>::new()) Self(Vec::<MatrixEntry>::new())
} }
pub fn push(&mut self, row: usize, col: usize, value: f64) { pub fn push(&mut self, row: usize, col: usize, value: f64) {
let PartialMatrix(entries) = self; let Self(entries) = self;
entries.push(MatrixEntry { index: (row, col), value }); entries.push(MatrixEntry { index: (row, col), value });
} }
@ -114,7 +114,7 @@ impl IntoIterator for PartialMatrix {
type IntoIter = std::vec::IntoIter<Self::Item>; type IntoIter = std::vec::IntoIter<Self::Item>;
fn into_iter(self) -> Self::IntoIter { fn into_iter(self) -> Self::IntoIter {
let PartialMatrix(entries) = self; let Self(entries) = self;
entries.into_iter() entries.into_iter()
} }
} }
@ -139,8 +139,8 @@ pub struct ConfigSubspace {
} }
impl ConfigSubspace { impl ConfigSubspace {
pub fn zero(assembly_dim: usize) -> ConfigSubspace { pub fn zero(assembly_dim: usize) -> Self {
ConfigSubspace { Self {
assembly_dim, assembly_dim,
basis_proj: Vec::new(), basis_proj: Vec::new(),
basis_std: Vec::new(), basis_std: Vec::new(),
@ -154,7 +154,7 @@ impl ConfigSubspace {
a: DMatrix<f64>, a: DMatrix<f64>,
proj_to_std: DMatrix<f64>, proj_to_std: DMatrix<f64>,
assembly_dim: usize, assembly_dim: usize,
) -> ConfigSubspace { ) -> Self {
// find a basis for the kernel. the basis is expressed in the projection // find a basis for the kernel. the basis is expressed in the projection
// coordinates, and it's orthonormal with respect to the projection // coordinates, and it's orthonormal with respect to the projection
// inner product // inner product
@ -173,7 +173,7 @@ impl ConfigSubspace {
const ELEMENT_DIM: usize = 5; const ELEMENT_DIM: usize = 5;
const UNIFORM_DIM: usize = 4; const UNIFORM_DIM: usize = 4;
ConfigSubspace { Self {
assembly_dim, assembly_dim,
basis_std: basis_std.column_iter().map( basis_std: basis_std.column_iter().map(
|v| Into::<DMatrix<f64>>::into( |v| Into::<DMatrix<f64>>::into(
@ -224,8 +224,8 @@ pub struct DescentHistory {
} }
impl DescentHistory { impl DescentHistory {
pub fn new() -> DescentHistory { pub fn new() -> Self {
DescentHistory { Self {
config: Vec::<DMatrix<f64>>::new(), config: Vec::<DMatrix<f64>>::new(),
scaled_loss: Vec::<f64>::new(), scaled_loss: Vec::<f64>::new(),
neg_grad: Vec::<DMatrix<f64>>::new(), neg_grad: Vec::<DMatrix<f64>>::new(),
@ -245,9 +245,9 @@ pub struct ConstraintProblem {
} }
impl ConstraintProblem { impl ConstraintProblem {
pub fn new(element_count: usize) -> ConstraintProblem { pub fn new(element_count: usize) -> Self {
const ELEMENT_DIM: usize = 5; const ELEMENT_DIM: usize = 5;
ConstraintProblem { Self {
gram: PartialMatrix::new(), gram: PartialMatrix::new(),
frozen: PartialMatrix::new(), frozen: PartialMatrix::new(),
guess: DMatrix::<f64>::zeros(ELEMENT_DIM, element_count), guess: DMatrix::<f64>::zeros(ELEMENT_DIM, element_count),
@ -255,8 +255,8 @@ impl ConstraintProblem {
} }
#[cfg(feature = "dev")] #[cfg(feature = "dev")]
pub fn from_guess(guess_columns: &[DVector<f64>]) -> ConstraintProblem { pub fn from_guess(guess_columns: &[DVector<f64>]) -> Self {
ConstraintProblem { Self {
gram: PartialMatrix::new(), gram: PartialMatrix::new(),
frozen: PartialMatrix::new(), frozen: PartialMatrix::new(),
guess: DMatrix::from_columns(guess_columns), guess: DMatrix::from_columns(guess_columns),
@ -284,10 +284,10 @@ struct SearchState {
} }
impl SearchState { impl SearchState {
fn from_config(gram: &PartialMatrix, config: DMatrix<f64>) -> SearchState { fn from_config(gram: &PartialMatrix, config: DMatrix<f64>) -> Self {
let err_proj = gram.sub_proj(&(config.tr_mul(&*Q) * &config)); let err_proj = gram.sub_proj(&(config.tr_mul(&*Q) * &config));
let loss = err_proj.norm_squared(); let loss = err_proj.norm_squared();
SearchState { config, err_proj, loss } Self { config, err_proj, loss }
} }
} }

View file

@ -24,8 +24,8 @@ struct AppState {
} }
impl AppState { impl AppState {
fn new() -> AppState { fn new() -> Self {
AppState { Self {
assembly: Assembly::new(), assembly: Assembly::new(),
selection: create_signal(BTreeSet::default()), selection: create_signal(BTreeSet::default()),
} }

View file

@ -17,8 +17,8 @@ pub struct SpecifiedValue {
} }
impl SpecifiedValue { impl SpecifiedValue {
pub fn from_empty_spec() -> SpecifiedValue { pub fn from_empty_spec() -> Self {
SpecifiedValue { spec: String::new(), value: None } Self { spec: String::new(), value: None }
} }
pub fn is_present(&self) -> bool { pub fn is_present(&self) -> bool {
@ -34,10 +34,10 @@ impl TryFrom<String> for SpecifiedValue {
fn try_from(spec: String) -> Result<Self, Self::Error> { fn try_from(spec: String) -> Result<Self, Self::Error> {
if spec.is_empty() { if spec.is_empty() {
Ok(SpecifiedValue::from_empty_spec()) Ok(Self::from_empty_spec())
} else { } else {
spec.parse::<f64>().map( spec.parse::<f64>().map(
|value| SpecifiedValue { spec, value: Some(value) } |value| Self { spec, value: Some(value) }
) )
} }
} }