css 갖고 레이아웃 구현하고 있음


워낙 스펙이 방대하신 분이라 그냥 필요한 속성 몇개만 떼와서 만들고 있는중





예제에 쓰인 view 코드와 css







-- 여기부턴 내부구현 --



css 속성 구조체임


CssVal에는 inherit를 CssAuto에는 auto를 지정가능함




둘다 FromStr 구현을 래핑해놔서 자동으로 파싱해줌


물론 CssColor나 CssRect등도 FromStr를 구현해서 바로 갖다 쓸수있음






여기에 부모속성을 스까넣으면 CssVal를 벗겨내고 실제 레이아웃에 쓰이는 값을 추출해냄







이 변환은 대부분 Calc 트레이트로 이루어져 있음 대충 부모값이 주어지면 계산된값을 내놓는 타입들임


그중에서 CssVal은 특수하게 nest_calc를 지원하는데


위 코드에서 CssRect은 Calc[Output = CalcCssRect]를 구현하고 있으므로 이걸 nest_calc 하나로 땡칠수있다 없으면 코드 눈물나게 길어짐