Fork of daniellemaywood.uk/gleam — Wasm codegen work
1.4 kB
41 lines
1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: 2021 The Gleam contributors
3
4use std::{
5 fmt::Debug,
6 time::{Duration, Instant},
7};
8
9use crate::{
10 Warning,
11 manifest::{PackageChanges, Resolved},
12};
13
14pub trait Telemetry: Debug {
15 fn waiting_for_build_directory_lock(&self);
16 fn running(&self, name: &str);
17 fn resolving_package_versions(&self);
18 fn resolved_package_versions(&self, changes: &PackageChanges);
19 fn downloading_package(&self, name: &str);
20 fn packages_downloaded(&self, start: Instant, count: usize);
21 fn compiled_package(&self, duration: Duration);
22 fn compiling_package(&self, name: &str);
23 fn checked_package(&self, duration: Duration);
24 fn checking_package(&self, name: &str);
25}
26
27#[derive(Debug, Clone, Copy)]
28pub struct NullTelemetry;
29
30impl Telemetry for NullTelemetry {
31 fn waiting_for_build_directory_lock(&self) {}
32 fn running(&self, name: &str) {}
33 fn resolving_package_versions(&self) {}
34 fn downloading_package(&self, _name: &str) {}
35 fn compiled_package(&self, _duration: Duration) {}
36 fn compiling_package(&self, _name: &str) {}
37 fn checked_package(&self, _duration: Duration) {}
38 fn checking_package(&self, _name: &str) {}
39 fn packages_downloaded(&self, _start: Instant, _count: usize) {}
40 fn resolved_package_versions(&self, _changes: &PackageChanges) {}
41}