Something went wrong

Thank you for being patient! We're working hard on resolving the issue

Naming conventions - Lona Docs Log in

Naming conventions

ConventionExamples
<Provider> (Integration marker)Garmin, Whoop, GoogleCalendar, Weather
<Provider>Client (grab-bag)GarminClient { http: Arc<Client> }
<Provider>BackendDeps (connector deps trait)GarminBackendDeps, WeatherBackendDeps, WeatherLogsDeps
<Provider>Auth (auth marker)GarminAuth, GoogleAuth, WhoopAuth
<Provider>Params (path params)GarminParams { auth_id: String }
<Provider>SyncProvider / ExecutorGarminSyncProvider, WhoopSyncExecutor
<Provider>SyncDeps (sync-plugin deps)GarminSyncDeps, WhoopSyncDeps
<Provider>ApiContext (auth/client resolver)GarminApiContext, WhoopApiContext
RowSyncState (per-row sync state)identical struct in each provider's sync_plugin/state.rs

Method names within BackendDeps

Reach for these standard names when applicable:

  • persist_cells(row_id, cells) — write a batch of cells.
  • recent_log_cells(owner, lookup_key) — read the recent log cells for a :logs row.
  • forked_row(user_id, lookup_key) — resolve the row's existing state, materialising if absent.
  • update_synced_range(row_id, range) — merge a synced range into the row's metadata.

If you need a method that doesn't fit one of these patterns, err toward more specific names (e.g. run_calendar_sync / create_calendar_event) — the host docs will reference these names directly so clarity matters more than brevity.

File layout

tento-myprovider/
├── Cargo.toml
└── src/
    ├── lib.rs
    ├── connector/
    │   ├── mod.rs
    │   ├── <metric_a>/
    │   │   ├── mod.rs
    │   │   └── logs.rs
    │   └── <metric_b>/
    │       ├── mod.rs
    │       └── logs.rs
    └── sync_plugin/         (optional)
        ├── mod.rs
        ├── context.rs
        ├── deps.rs
        ├── executor.rs
        ├── provider.rs
        └── state.rs

Each mod.rs ends with #![deny(missing_docs)] to enforce docstring coverage on public items.

If your provider has only one row family, you can skip the per-metric subdirectory and put Row impls directly in connector/. See tento-weather/src/connector/{mod,logs}.rs for that flatter shape.