Crate kinsaga

Crate kinsaga 

Source
Expand description

§Kinsaga

A family chronicle library for managing timestamped, categorized life events.

Kinsaga provides data structures and utilities for creating and managing family chronicles where life events are:

  • Timestamped with flexible date precision (year, month, day, or uncertain)
  • Categorized into customizable life themes
  • Person-centric - each family member has their own timeline

§Example

use kinsaga::model::{Chronicle, Person, Fact, Category};

let mut chronicle = Chronicle::new("1.0");
chronicle.title = Some("Family Chronicle".into());

chronicle.categories.push(
    Category::new("family", "Family & Friends").with_color("#E57373")
);

let mut person = Person::new("alice", "Alice Smith");
person.facts.push(Fact::new(
    "uuid-1",
    "1990-05-15",
    "family",
    "Born in Springfield",
));
chronicle.persons.push(person);

let json = serde_json::to_string_pretty(&chronicle).unwrap();
println!("{}", json);

Re-exports§

pub use date::ChronicleDate;
pub use facts::add_fact;
pub use facts::build_attachments;
pub use facts::build_location;
pub use facts::collect_timeline_facts;
pub use facts::edit_fact;
pub use facts::AddFactOptions;
pub use facts::AddFactResult;
pub use facts::AttachmentUpdate;
pub use facts::EditFactOptions;
pub use facts::EditFactResult;
pub use facts::LocationUpdate;
pub use facts::TimelineFact;
pub use facts::WithUpdate;
pub use filter::filter_facts;
pub use filter::search;
pub use filter::FactFilter;
pub use filter::SearchResult;
pub use format::escape_csv;
pub use format::format_attachment;
pub use format::format_attachment_markdown;
pub use format::format_date_display;
pub use format::format_location;
pub use format::truncate_text;
pub use geocode::fuzzy_match;
pub use geocode::GeocodedPlace;
pub use geocode::GeocodeError;
pub use geocode::GpsValidationResult;
pub use geocode::NominatimClient;
pub use io::load;
pub use io::save;
pub use merge::merge_chronicles;
pub use merge::ConflictStrategy;
pub use merge::DuplicateStrategy;
pub use merge::MergeEvent;
pub use merge::MergeEventType;
pub use merge::MergeItemType;
pub use merge::MergeOptions;
pub use merge::MergeResult;
pub use merge::MergeStats;
pub use model::Attachment;
pub use model::Category;
pub use model::Chronicle;
pub use model::Coordinates;
pub use model::Fact;
pub use model::Location;
pub use model::Person;
pub use validate::correct_uuids;
pub use validate::is_valid_mime_type;
pub use validate::validate_chronicle;
pub use validate::IssueType;
pub use validate::ValidationIssue;
pub use validate::ValidationResult;

Modules§

date
Date parsing with uncertainty support.
facts
Fact creation and manipulation operations.
filter
Search and filter functionality for chronicles.
format
Display formatting helpers.
geocode
Geocoding functionality using Nominatim (OpenStreetMap).
io
File I/O for chronicles.
merge
Merge operations for chronicles.
model
Data model for family chronicles.
validate
Validation logic for chronicles.

Structs§

Url
A parsed URL record.