rust_sasa/structures/
atomic.rs1#[cfg(feature = "serde")]
3use serde::{Deserialize, Serialize};
4
5#[derive(Clone, Copy)]
6#[repr(C)]
7pub struct NeighborData {
8 pub threshold_squared: f32,
9 pub idx: u32,
10}
11
12#[derive(Clone)]
14#[repr(C)]
15pub struct Atom {
16 pub position: [f32; 3],
18 pub radius: f32,
20 pub id: usize,
22 pub parent_id: Option<isize>,
24}
25
26#[derive(Debug, PartialEq)]
27#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
28pub struct ChainResult {
29 pub name: String,
31 pub value: f32,
33}
34
35#[derive(Debug, PartialEq)]
36#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
37pub struct ResidueResult {
38 pub serial_number: isize,
40 pub value: f32,
42 pub name: String,
44 pub is_polar: bool,
46 pub chain_id: String,
48}
49
50#[derive(Debug, PartialEq)]
51#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
52pub struct ProteinResult {
53 pub global_total: f32,
55 pub polar_total: f32,
57 pub non_polar_total: f32,
59}
60
61#[derive(Debug, PartialEq)]
62#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
63pub enum SASAResult {
64 Atom(Vec<f32>),
65 Residue(Vec<ResidueResult>),
66 Chain(Vec<ChainResult>),
67 Protein(ProteinResult),
68}