aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/package/root_package_interface.rs
blob: a053e28f4fde94f5bc7941c2a05f4337f8442dac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//! ref: composer/src/Composer/Package/RootPackageInterface.php

use indexmap::IndexMap;
use shirabe_php_shim::PhpMixed;

use crate::package::package_interface::PackageInterface;

use crate::package::complete_package_interface::CompletePackageInterface;
use crate::package::link::Link;

pub trait RootPackageInterface: CompletePackageInterface {
    fn get_aliases(&self) -> &[IndexMap<String, String>];

    fn get_minimum_stability(&self) -> &str;

    fn get_stability_flags(&self) -> &IndexMap<String, i64>;

    fn get_references(&self) -> &IndexMap<String, String>;

    fn get_prefer_stable(&self) -> bool;

    fn get_config(&self) -> &IndexMap<String, PhpMixed>;

    fn set_requires(&mut self, requires: Vec<Link>);

    fn set_dev_requires(&mut self, dev_requires: Vec<Link>);

    fn set_conflicts(&mut self, conflicts: Vec<Link>);

    fn set_provides(&mut self, provides: Vec<Link>);

    fn set_replaces(&mut self, replaces: Vec<Link>);

    fn set_autoload(&mut self, autoload: IndexMap<String, PhpMixed>);

    fn set_dev_autoload(&mut self, dev_autoload: IndexMap<String, PhpMixed>);

    fn set_stability_flags(&mut self, stability_flags: IndexMap<String, i64>);

    fn set_minimum_stability(&mut self, minimum_stability: String);

    fn set_prefer_stable(&mut self, prefer_stable: bool);

    fn set_config(&mut self, config: IndexMap<String, PhpMixed>);

    fn set_references(&mut self, references: IndexMap<String, String>);

    fn set_aliases(&mut self, aliases: Vec<IndexMap<String, String>>);

    fn set_suggests(&mut self, suggests: IndexMap<String, String>);

    fn set_extra(&mut self, extra: IndexMap<String, PhpMixed>);

    fn clone_as_package_interface(&self) -> Box<dyn PackageInterface> {
        todo!()
    }

    fn clone_box(&self) -> Box<dyn RootPackageInterface> {
        todo!()
    }

    fn as_package_interface(&self) -> &dyn PackageInterface {
        todo!()
    }
}